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);

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

在c语言中,没有开根号运算符,开根号使用的是内置函数“sqrt()”,使用语法“sqrt(数值x)”;例如“sqrt(4)”,就是对4进行平方根运算,结果为2。sqrt()是c语言内置的开根号运算函数,其运算结果是函数变量的算术平方根;该函数既不能运算负数值,也不能输出虚数结果。

对于Golang开发者来说,“invaliduseof…operator”是一个常见的报错。这个报错通常会在使用变长参数函数时出现。它在编译时就会被检测出来,并指出哪些部分有问题。这篇文章将介绍如何解决这个报错。一、什么是变长参数函数变长参数函数也被称为可变参数函数,是Golang语言中的一种函数类型。使用变长参数函数可以像如下方式定义多个

在Java中,“%”是取余的意思,是一个二元算术运算符,可进行除法运算并获取余数,语法“操作数1 % 操作数2”。取余运算符“%”的操作数通常是正整数也可以是负数甚至是浮点数,如果负数参与此运算,则结果的正负取决于前面一个数是正数还是负数。

在php中,“==”符号是一个比较运算符,可以比较两个操作数是否相等,语法“操作数1 == 操作数2”。“==”运算符会比较、并测试左边的变量(表达式或常量)是否与右边的变量(表达式或常量)具有相同的值;它只比较变量的值,而不是数据类型。如果两个值相同,则返回true值;如果两个值不相同,则返回false值。

在php中,可以使用“%”和“==”运算符来判断两个数能否整除;只需要使用“%”运算符将两个数相除获取余数,再使用“==”运算符判断获取的余数是否为0即可,语法“数1 % 数2 == 0”,如果为0则能整除,如果不为0则不能整除。

python凭借其简单易读的语法,广泛应用于广泛的领域中。掌握Python语法的基础结构至关重要,既可以提高编程效率,又能深入理解代码的运作方式。为此,本文提供了一个全面的思维导图,详细阐述了Python语法的各个方面。变量和数据类型变量是Python中用于存储数据的容器。思维导图展示了常见的Python数据类型,包括整数、浮点数、字符串、布尔值和列表。每个数据类型都有其自身的特性和操作方法。运算符运算符用于对数据类型执行各种操作。思维导图涵盖了Python中的不同运算符类型,例如算术运算符、比

python中的魔法方法是一些可以让你对类添加“魔法”的特殊方法,它们经常是两个下划线包围来命名的。Python的魔法方法,也称为dunder(双下划线)方法。大多数的时候,我们将它们用于简单的事情,例如构造函数(init)、字符串表示(str, repr)或算术运算符(add/mul)。其实还有许多你可能没有听说过的但是却很好用的方法,在这篇文章中,我们将整理这些魔法方法!迭代器的大小我们都知道__len__方法,可以用它在容器类上实现len()函数。但是,如果您想获取实现迭代器的类对象的长度
