问题描述:
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上再想吃时,就只剩一个桃子了。求第一天共摘了多少个桃子?
话不多说,上代码:
#include <stdio.h>
void main()
{
//sum为第一天摘的桃子的总数 i是第几天 remain是第i天吃完后剩余的桃子数目
int sum=1,i=1,remain;
for(sum=1;;sum++)
{
remain=sum;
for(i=1;i<=9;i++)
remain=remain/2-1;
if(remain==1)
break;
}
printf("第一天共摘了%d个桃子\n",sum);
}
if(remain==1)
break;
}
printf("第一天共摘了%d个桃子\n",sum);
}
这就是最简单最粗暴的解决问题的编程实现,让sum从1开始试,每一天剩下的都是前一天剩下的除以2再减1,当满足第十天剩余1个桃子时,跳出循环得到sum的值。
欢迎大家关注/订阅我的微信公众号Code Art Online,我会在我的公众号分享个人见闻,发现生活趣味;这里不仅有0和1,还有是诗和远方↓↓↓