黑马程序员技术交流社区

标题: 1112-练习-猴子吃桃 [打印本页]

作者: donkey2    时间: 2014-11-12 10:25
标题: 1112-练习-猴子吃桃
本帖最后由 donkey2 于 2014-11-15 10:06 编辑

/*
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少个桃子。
*/

/*
我的分析:设猴子第一天摘下n个,当天吃了n/2 +1 个,第二天 吃了(n/2-1)+1。。。依此类推第十天,只剩一个了。
          从最后一天往回回溯,那样前一天的桃子数量为先加1,再乘以2

1. 只需要知道每天吃当天的一半加1个,因为变成的目的是让计算机帮我们思考,而不是我们自己计算出算式而后写程序。
2. n为偶数,要进行输入控制。

*/

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
//        NSLog(@"Hello, World!");
        int nDay10 = 1;
        int day = 10;
        int number;
        for (; day > 0; day--) {
            number = (number + 1)*2;
        }
        NSLog(@"第一天桃子的数量为 %i",number);
    }
    return 0;
}


遇到的问题:
1. 开始思路有问题,想输入1,从而得到第一天的结果。事实上计算机并不能帮你解方程。
2. 反过来想的话,前一天的数量是加1后乘以2,思路就通了。


作者: Jeik    时间: 2014-11-12 12:00
又是一个递归的算法题目;
作者: donkey2    时间: 2014-11-12 12:02
Jeik 发表于 2014-11-12 12:00
又是一个递归的算法题目;

呵呵,我是按照练习顺序来的,估计后面的就会用定义函数的方法来处理了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2