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

    猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一 个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一 个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
    程序分析:采取逆向思维的方法,从后往前推断。


    下面用了for循环和递归两种方法来实现

    package com.math.forth;
    
    /***
     * 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一 个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
     * 以后每天早上都吃了前一天剩下的一半零一 个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
     * 程序分析:采取逆向思维的方法,从后往前推断。
     * 
     * @author wql
     *
     */
    public class Math10 {
        public static void main(String[] args) {
            method();
            System.out.println(method2(1));
        }
    
        /***
         * 循环遍历
         */
        public static void method() {
            int sum = 1;// 第十天桃子数量
            for (int i = 9; i > 0; i--) {
                sum = (sum + 1) * 2;
            }
            System.out.println(sum);
        }
    
        /**
         * 递归方法
         * 
         * @param day
         * @return
         */
        public static int method2(int day) {
            if (day == 10) {
                return 1;
            } else {
                return (method2(++day) + 1) * 2;
            }
        }
    }
    

    这里写图片描述

  • 相关阅读:
    推导式
    解构
    for 循环
    运算符
    while 循环
    流程控制语句
    索引和切片
    ASC转换BCD,ASC2BCD(转)
    CString和char互转,十六进制的BYTE转CString
    C++添加简单的日记记录
  • 原文地址:https://www.cnblogs.com/wangqilong/p/9417535.html
Copyright © 2011-2022 走看看