1856 - 猴子吃桃问题
时间限制 : 3 秒
内存限制 : 128 MB
有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天,猴子吃完桃子之后发现只剩一只桃子了,问这堆桃子原来有多少个? (m<29)
题目输入
第一行有一个整数n,表示有n组测试数据(从第二行开始,每一行的数据为:第m天);
题目输出
每一行数据是桃子的总个数
输入/输出样例
输入格式
2 3 11
输出格式
22 6142
C语言解答
#include<stdio.h> int main() { int i,m,n,s; scanf("%d",&n); for(i=0;i<n;i++) { int j; s=1; scanf("%d",&m); for(j=m;j>=1;j--) s=(s+1)*2; printf("%d\n",s); } return 0; }
C++解答
#include<iostream> using namespace std; int main() { int n; cin>>n;int a[30];a[0]=1; for(int r=1;r<=28;r++) a[r]=(a[r-1]+1)*2; int b[n+1]; for(int y=1;y<=n;y++) cin>>b[y]; for(int y=1;y<=n;y++) { cout<<a[b[y]]<<endl; } }
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); while(n-->0) { int m=sc.nextInt(); System.out.println(getSums(m)); } } public static int getSums(int x) { int peach=1; for(int i=1;i<=x;i++) { peach=(peach+1)*2; } return peach; } }