问答详情
源自:5-8 递归函数(二)

请教代码为什么这样写

为什么这代码要 这样写,请知道的帮我解释下,谢谢 num=( getPeachNumber ( n + 1 ) + 1 ) * 2,

提问者:rainfog 2015-09-07 10:38

个回答

  • Perona
    2015-09-07 11:50:05
    已采纳

    是不是这样理解:
    getPeachNumber(n)就是第n天的num;
    n=1时,getPeachNumber(1)是第一天的num,暂时用num1表示;
    n=2时,getPeachNumber(2)是第一天的num,暂时用num2表示;
    num1与num2之间满足以下关系:num2 = num1 /2 - 1;
    所以,getPeachNumber(2)=getPeachNumber(1)/2 - 1。
    推出,getPeachNumber(1)=(getPeachNumber(2)+1)*2。
    然后,就有了:num = (getPeachNumber(n+1)+1)*2。


  • qq_朱卫东_0
    2015-11-18 16:42:19

    好厉害!!终于看懂了!!

  • immxzmxz
    2015-11-14 16:14:58

    乍一看对,细想想不太对啊,如果num1表示第一天摘得,那第二天剩下的num2=num1摘得-num1吃的

    而num1吃的=num/2+1,所以num2=num1- 1 - num1/2

  • qq_宠辱不惊_1
    2015-10-10 23:15:01

    666