A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 365616804 中级黑马   /  2015-4-16 20:06  /  1106 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第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;
}

评分

参与人数 4技术分 +2 黑马币 +17 收起 理由
夜空守望者 + 3 好简单啊
石上波 + 2
波阿波 + 12 顶楼主 这题困扰我好久
船长 + 2

查看全部评分

5 个回复

倒序浏览
谢谢楼主分享
回复 使用道具 举报
这么深奥啊
回复 使用道具 举报
好贴  学习了  看懂有压力
回复 使用道具 举报
百思不得其解!
回复 使用道具 举报
这什么题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马