1 Sec
描述
数据
评测
题目描述
猴子吃桃问题。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。
以后每天早上都吃了前一天剩下的一半零一个。到第NN天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
输入描述
一个整数N(0\lt N\le 30)N(0<N≤30)
输出描述
初始桃子总数
样例输入
10
样例输出
1534
#include<stdio.h>
int main()
{ int a,b,n;
scanf("%d",&n);
for(int i=1;i<=n-1;i++){
b=b+1;
a=b*2;
b=a;
}
printf("%d",a);
return 0;
}
初稿如上
未过=-=
我一个一个输入n,发现n为1时输出为0
没错,我忘记给a,b赋初始值了+*+
#include<stdio.h>
int main()
{ int a,b,n;
scanf("%d",&n);
a=1;
for(int i=1;i<=n-1;i++){
b=b+1;
a=b*2;
b=a;
}
printf("%d",a);
return 0;
}
改了之后还是不行=!=
原来是超时了=*=
按照我的理解,这时应该简化程序-=-=
于是
#include<stdio.h>
int main()
{ int a,n;
scanf("%d",&n);
a=1;
for(int i=1;i<=n-1;i++){
a=(a+1)*2;
;
}
printf("%d",a);
return 0;
}
删掉b后果然变快了(hh)
30
1610612734
--------------------------------
Process exited after 0.8482 seconds with return value 0
请按任意键继续. . .
血的教训&。)