友情提示:380元/半年,儿童学编程,就上码丁实验室。
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将第一天剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃的时候,发现只剩下一个桃子了。求猴子第一天共摘了多少个桃子?
思路:
先找出变量之间的关系,也就是明确第1天桃子的数目和第2天桃子数目之间的关系:即第2天桃子数加1的2倍等于第1天的桃子数。
代码:
int main(){
int day, x1, x2;
day = 9;//从第9天开始往前推算
x2 = 1;//表示第9天结束还剩1个桃子
x1 = 0;//初始化中间变量
while(day > 0)
{
x1 = (x2 + 1) * 2;//当天的桃子数是下一天桃子数加1后的2倍
x2 = x1;
day–;//因为从后往前推算,所以天数递减
}
cout << “猴子第一天共摘了:” << x1 << “个桃.” << endl;
cout << “验算:” << endl;
for(int i=1; i<10; i++)
{
x2 = x1 – (x1 / 2 + 1);
cout << “第” << i << “天结束时剩下:” << x2 << “个桃” << endl;
x1 = x2;
}
return 0;
}
运行结果:
转自公众号:
南昌青少年编程