nyoj 324-猴子吃桃问题 (m[i] = (m[i-1] + 1) * 2)
324-猴子吃桃问题
内存限制:64MB
时间限制:3000ms
特判: No
通过数:20
提交数:21
难度:0
题目描述:
有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个? (m<29)
输入描述:
第一行有一个整数n,表示有n组测试数据(从第二行开始,每一行的数据为:第m天);
输出描述:
每一行数据是桃子的总个数
样例输入:
2 3 11
样例输出:
22 6142
C/C++ AC:
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <cmath> 6 #include <stack> 7 #include <set> 8 #include <map> 9 #include <queue> 10 #include <climits> 11 #define PI 3.1415926 12 13 using namespace std; 14 const int MY_MAX = 35; 15 int N, m[MY_MAX]; 16 17 void cal_m() 18 { 19 m[1] = 4; 20 for (int i = 2; i <= 33; ++ i) 21 m[i] = (m[i - 1] + 1) * 2; 22 } 23 24 int main() 25 { 26 cal_m(); 27 cin >>N; 28 while (N --) 29 { 30 int temp; 31 cin >>temp; 32 cout <<m[temp] <<endl; 33 } 34 }