题目描述
悟空第一天摘下桃子若干,当即吃掉一半,还不过瘾,又多吃一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
输入描述
输入一个数n(1<=n<=30)。
输出描述
输出第一天的桃子个数。
输入样例
3
输出样例
10
由于我们知道最后一天的桃子数量,可以反向考虑,把第n天当作第一天
#include <iostream>
using namespace std;
int main() {
int peach, next, current, n;
current=0;
cin >> n;
for (int i = 0; i < n; i++) {
if (i == 0) {
current = 1;//题目中第n天剩一个桃子,以此为反向的第一天
}
else {
next = (current+1) * 2;//由题目条件变化而来
current = next;
}
}
cout << current;//输出反向第n天桃子数,即正向第一天时候的桃子数量
return 0;
}