如何将此代码更改为仅在找到目标时打印猜测的总数
How do i change this code to only print the total number of guesses when it has found the target
我正在努力完成一个关于可汗学院的小测验。它要求我只在找到目标时打印猜测的总次数。
测试链接:链接
/* Returns either the index of the location in the array,
or -1 if the array did not contain the targetValue */
var doSearch = function(array, targetValue) {
var min = 0;
var max = array.length - 1;
var guess;
while(min <= max) {
guess = Math.floor((max + min) / 2);
if (array[guess] === targetValue) {
return guess;
else if (array[guess] < targetValue) {
min = guess + 1;
}
else {
max = guess - 1;
println(guess);
}
}
return -1;
};
var primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
var result = doSearch(primes, 73);
println("Found prime at index " + result);
Program.assertEqual(doSearch(primes, 73), 20);
这是我使用的有效代码:
/* Returns either the index of the location in the array,
or -1 if the array did not contain the targetValue */
var doSearch = function(array, targetValue) {
var min = 0;
var max = array.length - 1;
var guess;
var guesscount = 0;
while( min <= max ){
guess = Math.floor((min + max) / 2);
println(guess);
guesscount = guesscount + 1;
if( array[guess] === targetValue ){
println("Found prime in " + guesscount + " guesses");
return guess;
} else if( array[guess] < targetValue ){
min = guess + 1;
} else{
max = guess - 1;
}
}
return -1;
};
var primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
var result = doSearch(primes, 73);
println("Found prime at index " + result);
Program.assertEqual(doSearch(primes, 73), 20);
尝试添加一个保存猜测次数的全局变量,并在处理新猜测时增加该变量。在每次新搜索开始时将其设置为零。
当你做到这一点时,你可以将全局变量放入doSearch函数并将doSearch函数的返回类型更改为数组。然后,数组可以保存原始返回值和猜测次数。
您需要一个变量来计算您的猜测。添加
var guesscount;
到定义其他变量的函数体中,然后在while循环中通过添加
对其进行自增 guesscount = guesscount + 1;
放在if语句之前。然后可以使用
打印结果 println("Number of guesses: " + guesscount);
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- JavaScript打印功能使日历停止工作
- esri javascript异步打印
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jQuery/JavaScript在线公文包表单-打印样式表
- 如何打印嵌套对象的所有值
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- Href:当前DIV中的目标ID
- 打印预览没有应用程序页眉和页脚的html表格
- 正在打印图表上的文本
- Rhino打印功能
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- 在通过child.print()打印之前,我如何等待图像加载到我的新窗口中
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- 我正在做一个练习,目标是打印出“史蒂夫”.和“;bill"从代码学院,它只打印一个名字,而不是两个
- 如何打印元素的一部分.目标元素,
- 如何将此代码更改为仅在找到目标时打印猜测的总数