ocrosoft 程序设计提高期末复习问题M 递归求猴子吃桃

http://acm.ocrosoft.com/problem.php?cid=1172&pid=12

题目描述

猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半另加一个。到第n天早上想再吃时,就只剩下一个桃子了。求第1天共摘了多少个桃子

输入

n的值

输出

剩下的桃子数量

样例输入

10

样例输出

total=1534

题解:
运用递归的思想,定义的A的函数代表的是第n天开始的时候所有的桃子,x的值从1开始到n结束。

代码:
#include <bits/stdc++.h>

using namespace std;

int n;

int A(int x)
{
    if(x == n) return 1;
    return 2*(A(x + 1) + 1);
}

int main()
{
    while(cin>>n)
    {
        printf("total=%d\n",A(1));
    }
    return 0;
}
 
posted @ 2018-06-18 14:25  丧心病狂工科女  阅读(121)  评论(0编辑  收藏  举报