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

    猴子吃桃子的问题


    1、问题背景

         有只猴子第一天摘了若干桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个;以后每天早上都吃了前一天剩下桃子的一半还多一个。到第10天早上想再吃时,就只剩下一个桃子了。问:这只猴子第一天共摘了多少个桃子?


    2、解题思路

         采用逆向思维,由后往前推,递归思想


    3、解决办法

    (1)直接推断
            第十天:1
            第九天:4
            第八天:10
            第七天:22
            第六天:46
            第五天:94
            第四天:190
            第三天:382
            第二天:766
            第一天:1534


    (2)数学方法
            运用递归方法
            S10=1
            S9=2(S10+1)
            S8=2(S9+1)
            ...
            Sn=2Sn+1 +2
            S1=2^9*S+2^9+......+2
                =512+512+256+128+64+32+16+8+4+2=1534


    (3)Java代码实现

    /**
     *
     * @title:MonkeyPeach.java
     * @Package:com.you.hbxs.model
     * @Description:<h3>猴子吃桃问题</h3>
     * @author:游海东
     * @date:2016-2-27下午5:59:44
     * @version V1.0
     *
     */
    package com.you.hbxs.model;
    
    /**
     *
     * 项目名称:HBXS
     * 类名称:MonkeyPeach
     * 类描述:
     * 创建人:游海东
     * 创建时间:2016-2-27下午5:59:44
     * 修改人:游海东
     * 修改时间:2016-2-27下午5:59:44
     * 修改备注:
     * @version V1.0
     *
     */
    public class MonkeyPeach 
    {
    	/**
    	 * 
    	 * 方法名:getPeachNum
    	 * 方法类型:MonkeyPeach
    	 * 参数:@param days
    	 * 参数:@param peach
    	 * 参数:@return
    	 * @return :int
    	 * @throws
    	 */
    	public static int getPeachNum(int days,int peach)
    	{
    		if(days == 1)
    		{
    			return peach;
    		}
    		else
    		{
    			days--;
    			peach = (peach+1)*2;
    			
    			return getPeachNum(days,peach);
    		}
    	}
    	
    	/**
    	 * 
    	 * 方法名:main
    	 * 方法类型:MonkeyPeach
    	 * 参数:@param args
    	 * @return :void
    	 * @throws
    	 */
    	public static void main(String[] args) 
    	{
    		int peachNum = getPeachNum(10, 1);
    		System.out.println("桃子的个数:"+peachNum);
    	}
    
    }
    


  • 相关阅读:
    GitHub挂载网站
    JS中用execCommand("SaveAs")保存页面兼容性问题解决方案
    使用List,Dictionary加载数据库中的数据
    模拟在table中移动鼠标,高亮显示鼠标所在行
    ASP.NET AutoCompleteType 属性,这么多年的IT人你发现了吗?
    生成流水号
    在数据库中查找字符串(不知道表名的情况下 查找字符串)
    半角与全角之间的转换
    C#代码规范精简表
    有关Excel导出
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13314227.html
Copyright © 2011-2022 走看看