问题遇到的现象和发生背景
猴子第一天摘下若干桃子,当即吃了一半,还觉不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天天早上都吃了前一天剩下的一半零一个。到第n(n<=20)天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。
输入格式:
测试数据有多组,处理到文件尾。每组输入天数n。
输出格式:
每组输出第一天摘的桃子数(结果保证在int型范围)。
输入样例:
在这里给出一组输入。例如:
5
10
18
输出样例:
在这里给出相应的输出。例如:
46
1534
393214
问题相关代码,请勿粘贴截图
int n,sum=1,i;
while(scanf("%d",&n) != EOF)//这是我认为的输入多组数据的方法
{
while(n)
{
sum=(sum+1)*2;
n--;
}
if(n==0)
{
i=sum/2-1;
printf("%d\n",i);
}
}
运行结果及报错内容
5
10
18
结果
46
49150
-2
以上是输入和运行结果
我的解答思路和尝试过的方法
用这串代码可以解决输入一组数据并运行正确结果
但是输入一组数据时就不行了
我想要达到的结果
46
1534
393214