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);
    	}
    
    }
    


  • 相关阅读:
    献给所有学习控件和组件开发的读者
    ASP.NET 2.0书稿最新进展——开始一审
    愿我们共同进步——献给《Programming ASP.NET 3rd. 中文版》
    Error from MSDN——No4. Login.UserName
    安装MSDN中文版后的乱弹
    Error from MSDN——No9. Login.UserNameRequiredErrorMessage
    Error from MSDN——No1. Roles.Enabled
    Error from MSDN——No8. Login.PasswordRequiredErrorMessage
    热心的朋友请注意:ASP.NET 2.0书稿目录征求意见
    撰写《ASP.NET 2.0开发指南》的非正式小结
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13314227.html
Copyright © 2011-2022 走看看