猴子吃桃问题
时间限制:3000 ms | 内存限制:65535 KB
难度:0
- 描述
- 有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个? (m<29)
- 输入
- 第一行有一个整数n,表示有n组测试数据(从第二行开始,每一行的数据为:第m天);
- 输出
- 每一行数据是桃子的总个数
- 样例输入
-
2 3 11
- 样例输出
-
22 6142
我的程序: - #include<stdio.h>
int main()
{
int i,j,n,m,x=0,y=1;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&m);
y=1;
for(j=0;j<m;j++)
{
y=(1+y)*2;
}
printf("%d ",y) ;
}
system("pause");
return 0;
}
最优程序: - #include<stdio.h>
int main()
{
int n,m;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
printf("%d ",(3<<m)-2); //找规律题,<<左移运算 ,0000011(3)左移为0001100(12)—2=10(三天)
}
system("pause");
return 0;
}