黑马程序员技术交流社区

标题: 猴子摘桃.用for循环 [打印本页]

作者: 365616804    时间: 2015-4-16 20:06
标题: 猴子摘桃.用for循环
题目:
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩一个桃子了。求第一天共摘多少个桃子。
  思路:
要从第十天为1个桃子来到推出,第一天有多少个桃子
      假设第一天有x个桃子
第1天开始桃子个数:    x
第2天开始桃子个数:    x  =  x / 2 -1
第3天开始桃子个数:    x  =  x / 2 -1
...
第9天开始桃子个数:    x  =  x / 2 -1
第10天开始桃子个数:   x  =  1

现在从第十天开始向第一天倒推
第10天开始桃子个数:   x  =  1
第9天开始桃子个数:    x  =  (x + 1) * 2 //该表达式为从等号左边换到等号右边所得到的表达式
...
第2天开始桃子个数:    x  =  (x + 1) * 2
第1天开始桃子个数:    x  =  (x + 1) * 2

*/

4.
int main(int argc, const char * argv[])
{
    int peach_num = 1;//第十天桃子数量
    int day = 10;//一共吃了10天,因为10在后面需要用到,所以定义到for外边
    for (; day>1; day--)
{
        printf("第%d天,peach_num = %d\n", day,peach_num);
        peach_num = (peach_num + 1) * 2;//前一天都是今天桃子数量+1,乘以2
        
    }
    printf("第%d天,peach_num = %d\n", day,peach_num);
    return 0;
}

作者: sgr2038    时间: 2015-4-16 20:52
谢谢楼主分享
作者: 261406938    时间: 2015-4-16 21:26
这么深奥啊
作者: kaiyan1208    时间: 2015-4-16 21:36
好贴  学习了  看懂有压力

作者: 夜空守望者    时间: 2015-4-16 22:01
百思不得其解!
作者: jonk    时间: 2015-4-16 22:03
这什么题




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