任务描述
猴子第一天摘下若干个桃子,吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,并且又多吃了一个。以后每天早上都吃掉前一天剩下的一半零一个。到第10
天早上再想吃时,发现只剩下一个
桃子。问第一天共摘了多少桃子?
若到第day(day>1)
天早上再想吃时,发现只剩下一个桃子。问第一天共摘了多少桃子?
任务分析
该问题需要反向递推。
测试说明
测试输入:10
预期输出:
day 10, 1
day 9, 4
day 8, 10
day 7, 22
day 6, 46
day 5, 94
day 4, 190
day 3, 382
day 2, 766
day 1, 1534
表示若第10天
只剩下1只
桃子,则第1天
摘了1534只
桃子。
测试输入:5
预期输出:
day 5, 1
day 4, 4
day 3, 10
day 2, 22
day 1, 46
#include <stdio.h>
#include <stdlib.h>
int main()
{
int day,x=1,i;
scanf("%d",&day);
printf("day%3d, %d\n",day,1);
for(i=day-1; i>0; i--)
{
x=(x+1)*2;
printf("day%3d, %d\n",i,x);
}
return 0;
}