9.小兔子拔萝卜 第一天拔一个,第二天拔2个 第三天拔3个, 问小兔子对多少天能把5个萝卜拔光
//声明一个累加器,用于累加萝卜的数量
var sum=0;
//初始化循环变量(循环天数)
var n=1;
//萝卜的数量小于5的时候 继续拔萝卜
while(sum<5){
sum+=n;
n++;
}
console.log(n-1); // 解决:这里有一个错误是出一错误 要减去1 才是正确答案
分析:
错误出现的原因:循环条件和更新循环变量不是同一个变量的时候 出现出一错误
1.sum+=n; 就是sum=n+sum=1+0=1 (第一天要拔的萝卜);
2. n++ n=n+1=1+1=2
当1(第一天拔的萝卜)小于5的时候,继续拔萝卜
sum=n+sum =2(第二天要拔的萝卜)+1=3;
n++ n=n+1=2+1=3;
当3(第2天拔的萝卜)小于5的时候,继续拔萝卜
此时 sum=n+sum=3(第三天要拔的 )+3(前二天拔的萝卜) =6 (三天把萝卜拔完)
输出的天数应该是3,可是循环里面还有个n++ ,所以天数在3原本的基础上又自加了1
就出现了出一错误 请看下图:
例子:.小兔子拔萝卜 第一天拔一个,第二天拔2个 第三天拔3个, 问小兔子对多少天能把500个萝卜拔光;