出一错误

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个萝卜拔光;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值