猴子吃桃:一个猴子有一天摘了很多桃子,当天吃了一半,还觉得不过瘾,又多吃了一个,后边每天都吃了剩下桃子的一半多加一个第十天还没有吃的时候发现只剩下一个桃子了,问一开始摘了多少桃子?
首先从数学角度进行分析,我们设一共有x个桃子,第一天吃一半多一个,那么剩下x/2-1个桃子,此时剩下的桃子就是明天的桃子,那么现在我们逆向思维想一下,最后一天也就是第十天,剩下了一个桃子,那么前一天也就是第九天没吃的时候是多少呢?计算之前,我们把公式转换一下,前一天剩的也就是2(x+1),我们把第十天的1个代入,可得出第九天还剩4个,以此类推第八天10个......。
那么我们的代码应该如何书写呢,首先我们要从第十天开始设定,第十天为1个,则可设定 let today = 1;求值(第n天有多少个):let n=0;共九天:let day=9;
let today = 1; let n=0 ; let day=9; while( day>0){ n=2*(today+1 ); today = n;(进行赋值) day--; } console.log(n);
结果可得
如果大家有其他看法,欢迎讨论!