javascript中"/"运算符常见错误_javascript技巧
//二分查找健忘递归版本
function binary_search(arr,target,low,high){
if(low
if(target>arr[min])
return binary_search(arr,target,min+1,high);
else
return binary_search(arr,target,low,min);
}else if(low==high){ //只剩下一个元素
if(arr[low]==target)
return low;
else return -1;
}else if(low>high){ //空,当用arr.length-1来计算arr的初始high时才要考虑
return -1;
}
}
var arr=[1,2,3,4,5,6];
alert(binary_search(arr,3,0,arr.length-1));
晚上看数据结构,顺便就用js写了个二分查找算法(代码如上),然后随便写了个数组作为测试数据(如上),按照设想应该是输出查找目标的下标,但是意向不到的事情发生了,只见CPU霎时狂转,约两秒后,浏览器自动终止了脚本的运行,然后就一阵纳闷。
根据经验来看,应该是在脚本运行的过程出现了死循环,自习看了一下算法,没有发现什么问题(干脆直接照着课本上的代码输入总不会错了吧),但是问题依旧。于是就在第一个判断条件里面加了个输出语句,如下:
//二分查找健忘递归版本function binary_search(arr,target,low,high){
if(low
if(target>arr[min])
return binary_search(arr,target,min+1,high);
else
return binary_search(arr,target,low,min);
}else if(low==high){ //只剩下一个元素
if(arr[low]==target)
return low;
else return -1;
}else if(low>high){ //空,当用arr.length-1来计算arr的初始high时才要考虑
return -1;
}
}
运行,弹出个对话框,里面数字为2.5~~突然有种恍然大悟同时想要砸电脑的冲动。
出错原因以及总结:
javascript里面的"/"运算符跟C++里面的"/"运算符不一样,后者自动取整,前者若非整除则会得到小数(比如说5/2=2.5)。
解决方案:
(1)var min=parseInt((low+high)/2);
(2)var min=Match.floor((low+high)/2);

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In der C-Sprache gibt es keinen Root-Operator. Zum Öffnen des Roots wird die Syntax „sqrt(value x)“ verwendet. besteht darin, die Quadratwurzeloperation für 4 durchzuführen. Das Ergebnis ist 2. sqrt() ist eine integrierte Root-Operationsfunktion in der C-Sprache. Ihr Operationsergebnis ist die arithmetische Quadratwurzel der Funktionsvariablen. Diese Funktion kann weder negative Werte verarbeiten noch imaginäre Ergebnisse ausgeben.

Für Golang-Entwickler ist „invaliduseof...operator“ ein häufiger Fehler. Dieser Fehler tritt normalerweise auf, wenn Parameterfunktionen variabler Länge verwendet werden. Es wird zur Kompilierungszeit erkannt und zeigt an, bei welchen Teilen Probleme auftreten. In diesem Artikel erfahren Sie, wie Sie diesen Fehler beheben können. 1. Was ist eine Parameterfunktion variabler Länge? Eine Parameterfunktion variabler Länge wird in der Golang-Sprache auch als Funktion variabler Parameter bezeichnet. Mithilfe von Parameterfunktionen variabler Länge können Sie mehrere Funktionen wie folgt definieren:

In Java bedeutet „%“ Rest. Es handelt sich um einen binären arithmetischen Operator, der Divisionsoperationen durchführen und den Rest ermitteln kann. Der Operand des Restoperators „%“ ist normalerweise eine positive ganze Zahl oder eine negative Zahl oder sogar eine Gleitkommazahl. Wenn eine negative Zahl an dieser Operation beteiligt ist, hängt das Ergebnis davon ab, ob die vorherige Zahl positiv oder negativ ist.

Der Operator += wird verwendet, um den Wert des linken Operanden zum Wert des rechten Operanden zu addieren und das Ergebnis dem linken Operanden zuzuweisen. Er ist für numerische Typen geeignet und der linke Operand muss beschreibbar sein.

In PHP ist das Symbol „==“ ein Vergleichsoperator, der vergleichen kann, ob zwei Operanden gleich sind. Die Syntax lautet „Operand 1 == Operand 2“. Der „==“-Operator vergleicht und testet, ob die Variable links (Ausdruck oder Konstante) den gleichen Wert hat wie die Variable rechts (Ausdruck oder Konstante); er vergleicht nur die Werte der Variablen, nicht die Daten Typen. Wenn die beiden Werte gleich sind, wird ein wahrer Wert zurückgegeben. Wenn die beiden Werte nicht gleich sind, wird ein falscher Wert zurückgegeben.

In PHP können Sie die Operatoren „%“ und „==" verwenden, um festzustellen, ob zwei Zahlen teilbar sind. Sie müssen nur den Operator „%" verwenden, um die beiden Zahlen zu dividieren, um den Rest zu erhalten, und dann den Operator „=“ verwenden ="-Operator Beurteilen Sie einfach, ob der erhaltene Rest 0 ist. Die Syntax lautet „Zahl 1 % Zahl 2 == 0“. Wenn er 0 ist, kann er teilbar sein. Wenn er nicht 0 ist, kann er nicht teilbar sein.

Python wird aufgrund seiner einfachen und leicht lesbaren Syntax in einer Vielzahl von Bereichen häufig verwendet. Es ist von entscheidender Bedeutung, die Grundstruktur der Python-Syntax zu beherrschen, um sowohl die Programmiereffizienz zu verbessern als auch ein tiefes Verständnis für die Funktionsweise des Codes zu erlangen. Zu diesem Zweck bietet dieser Artikel eine umfassende Mindmap, die verschiedene Aspekte der Python-Syntax detailliert beschreibt. Variablen und Datentypen Variablen sind Container, die zum Speichern von Daten in Python verwendet werden. Die Mindmap zeigt gängige Python-Datentypen, einschließlich Ganzzahlen, Gleitkommazahlen, Zeichenfolgen, boolesche Werte und Listen. Jeder Datentyp hat seine eigenen Eigenschaften und Betriebsmethoden. Operatoren Operatoren werden verwendet, um verschiedene Operationen an Datentypen auszuführen. Die Mindmap deckt die verschiedenen Operatortypen in Python ab, z. B. arithmetische Operatoren und Verhältnisse

Magische Methoden in Python sind spezielle Methoden, mit denen Sie einer Klasse „Magie“ hinzufügen können. Der Name wird häufig von zwei Unterstrichen umgeben. Die magische Methode von Python, auch bekannt als Dunder-Methode (doppelte Unterstreichung). Meistens verwenden wir sie für einfache Dinge wie Konstruktoren (init), String-Darstellungen (str, repr) oder arithmetische Operatoren (add/mul). Tatsächlich gibt es viele Methoden, von denen Sie vielleicht noch nie gehört haben, die aber sehr nützlich sind. In diesem Artikel werden wir diese magischen Methoden klären. Wir alle kennen die Größe der Iterator-Methode __len__, die in Containerklassen verwendet werden kann die Funktion len() ein. Wenn Sie jedoch die Länge eines Klassenobjekts erhalten möchten, das den Iterator implementiert
