猴子吃桃问题。猴子第一天摘了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的的一半零一个。到第10天早上想再吃时,就剩下一个桃子了。求第一天共摘了多少桃子。
这又是一个猴子吃桃子的问题,前面,我们已经解了大概类似的一道题了,从这个题中我们知道当第10次,剩下了一个桃子。从上面的关系中我们可以看出存在这样一个关系 s9/2 - 1 = s10,s8/2 -1 = s9,.. s1/2 -1 = s2;现在s10 = 1.利用上面的迭代关系。经过等式变化我们能够看到这个关系 s = (s+1)*2;我们就能很快求出s1的值。代码如下:
#include <stdio.h>
int main(int argc,int *argv[]) { int s = 1; int i; for (i = 9 ;i > 0; i--) { s = 2 * (s + 1); printf("the %d's count: %d \n",i,s); } printf("\nthe result is :%d\n",s); system("pause"); return 0; }
|
经过程序运算,我们可以得到第一次猴子共摘了1534个桃子。
阅读(3815) | 评论(0) | 转发(0) |