zoukankan      html  css  js  c++  java
  • 猴子吃桃

    猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将第一天剩下的桃子吃掉一半,又吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,发现只剩下一个桃子了。编写程序求猴子第一天共摘了多少个桃子。

    思路:开始时是从前往后想,先设第一天摘的桃子为x,吃了x/2+1;然后第二天吃了[x-(x/2+1)]/2+1个,即(x-2)/4个...到第十天剩下1个,可是这样想的话算法太复杂了。后来换位思考了下,从后往前想,第九天剩1个,第一天的桃子数是第二天桃子数的加1后的2倍,即x1=(x2+1)*2。

    #include <stdio.h>
    main()
    {
        int day,x1,x2;
        //day=9;
        scanf("%d",&day);
        x2=1;
        while(day>0)
        {
            x1=(x2+1)*2;
            x2=x1;
            day--; //从后往前推所以天数递减
        }
        printf("the total is %d
    ",x1);
    }

    结果

    E:c++>a
    9
    the total is 1534
  • 相关阅读:
    尝试制作了一个Panorama
    Python小游戏之猜数字
    Java基础-多线程学习目录
    Java8学习笔记目录
    Guava学习笔记目录
    Angular4学习笔记-目录汇总
    Springboot学习笔记
    JavaWeb-Tomcat阀
    JavaWeb-Tomcat安全域
    JavaWeb-Servlet基础
  • 原文地址:https://www.cnblogs.com/bearkid/p/8799402.html
Copyright © 2011-2022 走看看