前言
简单问题,写的不好,大佬见谅.
如有疏漏,欢迎指正,小编垂首.
问题描述:
小明买了一堆桃子,不知道个数,第一天吃了一半的桃子,还不过瘾,又多吃了一个。以后他每天吃剩下的桃子的一半还多一个,到n天只剩下一个桃子了。问:最开始买了多少桃子。
输入格式:输入一个整数n ,2<= n<=3
输出格式:输出买的桃子的数量
问题解析:
第n-1天的桃子数是(第n天的桃子数+1)*2
实现代码:
代码如下(示例):
#include<iostream>
using namespace std;
int result(int n,int m) {
if (n == 1) return m;
return result(n - 1, (m+1)*2);
}
int main() {
int n;
cin >> n;
cout << result(n, 1) << endl;
return 0;
}
测试案例:

总结
递归练习
本文介绍了一个有趣的逆向思维算法题目,通过已知最后一天剩余的桃子数量,利用递归方法逆推最初购买的桃子总数。文章提供了完整的代码实现及解析,并通过实例演示了如何使用该算法。
1924

被折叠的 条评论
为什么被折叠?



