题意
小明每过 111 小时,现有鸭子会少一半再多 111 只;
经过 nnn 小时后只剩 111 只鸭子,用递归求出最初鸭子总数。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
思路
1.1.1. 正向过程:每小时鸭子数 = 当前 ÷2−1÷2 -1÷2−1;
逆向倒推公式:前一小时数量 = (((当前数量 +1)×2+ 1)×2+1)×2
2.2.2.递归函数设计:
∘\circ∘ 参数 nnn:剩余小时数,mmm:当前鸭子数量
∘\circ∘ 递归边界:nnn =0=0=0,直接返回当前鸭子 mmm
∘\circ∘ 递归过程:小时数减 111,用逆推公式更新鸭子数量继续递归
3.3.3. 主函数输入 nnn,初始鸭子为 111 调用递归,输出结果
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
完整代码