猴子第一天摘下若干桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。
#include
intmain()
{
intprev;
intnext=1;
inti;
for(i=9;i>=1;i--)
{
prev=(next+1)*2;
next=prev;
}
printf("total=%d\n",prev);
return0;
}
运行结果:
====================
total=1534
====================
★此题用倒推的办法,所以注意循环结束的条件。多数情况下用循环为递增方式,本题中用递减方式,因此是:i>=1。
分步验证如下:
#include
intmain()
{
intprev;
intnext=1;
inti;
for(i=9;i>=1;i--)
{
prev=(next+1)*2;
printf("i=%dtotal=%-5d\n",i,prev);
next=prev;
}
return0;
}
运行结果:(i表示第几天)
===============================
i=9total=4
i=8total=10
i=7total=22
i=6total=46
i=5total=94
i=4total=190
i=3total=382
i=2total=766
i=1total=1534
===============================
兄弟是这个吧