猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?
分析:
假设某一天为n2,其前一天为n1。
则n2=n1/2-1; 反解得到n1=(n2+1)*2;
以此作为从后往前推的一句,根据最后一天剩下的桃子数量,求第一天的桃子数量。
#include<iostream>
using namespace std;
int main(){
int n1=1,n2=1,i;
for(i=1;i<10;i++){//注意这里是小于号
n1=(n2+1)*2;
n2=n1;
}
cout<<n2<<endl;
return 0;
}
在写这个代码的时候,一开始写成了i<=10,忽略了应该向前回溯9天,而不是10天的问题。