猴⼦第⼀天摘下若⼲个桃⼦,当即吃了⼀半,好不 过瘾,又多吃了⼀个。第⼆天早上又吃了剩下的桃⼦的⼀半,又多吃 了⼀个。以后每天都吃了前⼀天剩下的⼀半零⼀个,到第 10 天早上想 再吃的时候,就剩下⼀个桃⼦。求第⼀天共摘多少个桃⼦。
分析:第10天剩一个桃,那么可倒推出第九天吃了几个桃,则(1+1)*2,依次类推,则总结出的规律是前一天的基础上+1再乘以2,则是当前天数吃了的桃子。
10 9 8 7 6 5 4 3 2 1
【1】 【4】 【10 】 .....................................................................................................
求第一天共摘了多少个桃子?
方法一:for循环
#include<stdio.h>
#include<stdlib.h>
int main()
{
int sum = 1;
printf("它第10天一共摘了1个桃子!\n");
for (int i =9; i >0; i--)
{
sum = (sum + 1) * 2;
printf("它第%d天一共摘了%d个桃子!\n", i,sum);
}
system("pause");
return 0;
}
方法二:while循环
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 9, sum = 1;//倒推前九天的,已知第十天的个数
while ( i >0)
{
sum = (sum + 1) * 2;//计算个数
i--;
}
printf("它第1天一共摘了%d个桃子!\n", sum);
system("pause");
return 0;
}