Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2538966
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-07-28 16:19:24

    猴子吃桃问题。猴子第一天摘了若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的的一半零一个。到第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个桃子。
阅读(3810) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~