黑马程序员技术交流社区
标题:
猴子摘桃.用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