猴子吃桃问题
Description
有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩桃子的一半又多一个,天天如此,到第m天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?
Input
输入一个整数m(m<29)
Output
输出桃子的总个数
Sample Input
3
Sample Output
10
python解法
m = int(input("请输入天数m: ")) # 输入天数
peaches = 1 # 第m天早上剩下的桃子数
for i in range(m - 1, 0, -1):
# 根据题意,前一天的桃子数是 (当前桃子数 + 1) * 2
peaches = (peaches + 1) * 2
print(peaches)
c++解法
#include<bits/stdc++.h>
using namespace std;
int main() {
int m, count = 1; // 初始化m为天数,count为第m天早上剩余的桃子数(已知为1)
cin >> m; // 输入天数m
// 从倒数第二天开始反推,计算原来有多少个桃子
for (int i = 1; i < m; i++) {
// 根据题意,每天猴子吃掉的是前一天桃子数的一半再多一个
// 因此,前一天的桃子数应该是(count + 1)的两倍
count = (count + 1) * 2;
}
cout << count << endl; // 输出原来桃子的总数
return 0;
}
如果您有更优的解法,欢迎在评论区一起交流噢~
阅读剩余
作者:小鱼
链接:https://www.52stu.com/?p=182
文章版权归作者所有,未经允许请勿转载。
链接:https://www.52stu.com/?p=182
文章版权归作者所有,未经允许请勿转载。
THE END