/*********************************************************************
程序名: 猴子吃桃问题
说明:
一只小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;
第二天又吃了一半,再加上一个;后面每天都是这样吃。
到第10天的时候,小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子?
1. for
2. 递归
*********************************************************************/
#include <iostream>
#include <map>
using namespace std;
void MonkeyByFor()
{
int n = 9;
for (int x = 1; n > 0; n--)
{
cout << "第" << n << "天吃之前有" << (x + 1) * 2 << "个桃子" << endl;
cout << "第" << n << "天吃完后有" << x << "个桃子" << endl;
x = (x + 1) * 2;
}
}
int num(int n)
{
int i;
if (n == 1) i = 1;
else i = 2 * (num(n - 1) + 1);
return i;
}
void MonkeyByRecursion()
{
cout << "桃子一共有:" << num(10) << "个" << endl;
}
int main()
{
//MonkeyByFor();
MonkeyByRecursion();
system("PAUSE");
return 0;
}