题解
2026-06-30 18:19:54
发布于:湖南
1阅读
0回复
0点赞
题意
小明每过 小时,现有鸭子会少一半再多 只;
经过 小时后只剩 只鸭子,用递归求出最初鸭子总数。
思路
正向过程:每小时鸭子数 = 当前 ;
逆向倒推公式:前一小时数量 = 当前数量
递归函数设计:
参数 :剩余小时数,:当前鸭子数量
递归边界: ,直接返回当前鸭子
递归过程:小时数减 ,用逆推公式更新鸭子数量继续递归
主函数输入 ,初始鸭子为 调用递归,输出结果
完整代码
#include <bits/stdc++.h>
using namespace std;
int f(int n, int m){
if (n == 0) return m;
return f(n-1,(m+1)*2);
}
int main() {
int n;
cin >> n;
cout << f(n,1);
return 0;
}

这里空空如也








有帮助,赞一个