qq_慕仰8138156
2020-02-19 15:00
数学式子写不出来 ,影响大吗。。。
另外本人给同学解释一下(get(n+1)+1)*2什么意思
已知第10天剩余数量为1 所以if(n==10 ) return 1;
第9天的数量=第10天数量+1*2 意思也就是第9天的第二天的数量 +1*2
表达第9天的二天数量就是get(9+1) 所以:(get(n+1)+1)*2
第10天数量我们表示为get(10)
所以第9天数量=(get(10)+1)*2 成n+1模式为 (get(9+1)+1)*2
第8天数量 =第九天数量+1*2 表达为第8天的第二天数量 +1*2
第8天的第二天的数量是 第8天的第二天的第二天数量+1*2 表达 ((get(8+1)+1)*2)。
其实就是一道应用题,每天的桃子是后一天剩下桃子量的两倍还多一个,所以要想直到当天桃子量必须先知道后一天的桃子量 这也是为什么这个代码是倒着算的
并且已知到第十天的时候只剩一个桃子 所以只有算到第十天的时候才能开始解
在算到最后一步,也就是第十天的时候,之前每一天的桃子量都不知道,而是把计算下一天桃子量的函数当作前一个函数的变量
我们从头开始
第一天的桃子量是第二天剩下桃子还多一个的两倍 此时n=1
即第一天的桃子量num={[第二天的桃子量getPeachnumber(n+1=2)]+1(多一个)}*2 的两倍
然后对于第二天 来说 此时 n=2 num={[第三天的桃子量getPeachnumber(n+1=3)]+1(多一个)}*2 的两倍
在第十层之前每层都是这样循环的 但是在算到第十层之前都没有确切的数字出来
也就是算第九天的桃子量时 n=9 num={[第十天的桃子量getPeachnumber(n+1=10)]+1(多一个)}*2 的两倍
由n==10, return 1可知 对于函数getPeachnumber(n)当自变量等于10时 函数值等于1,即第十条桃子量为1
然后第九天就是num={[1]+1}*2=4
第八条是num={[4]+1}*2=10……以此类推 就出结果了
你可以想象成俄罗斯套娃
不知道有没有帮到你更好的理解
小事,影响不大,多补补数学吧,哈哈?
C语言入门
926210 学习 · 20797 问题
相似问题