蟠桃记 HDU - 2013
递归入门
题意
猴子吃桃,每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。计算第一天开始吃的时候桃子的个数。
思路
递推问题,每天吃掉一半多一个,也就是第n天的桃子数+1后再乘2,就是第n - 1天桃子的个数,由此得出递推式。
递推式为:num[i + 1] = (num[i] + 1) * 2;
#include<iostream>
using namespace std;
long long int num[50]; //数值可能会很大
void init()
{
num[1] = 1;
for(int i = 1; i < 50; i++)
num[i + 1] = (num[i] + 1) * 2; //递推
}
int main()
{
ios::sync_with_stdio(false);
int n;
init();
while(cin >> n)
cout << num[n] << endl;
return 0;
}