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

     1 #include <stdio.h>
     2 /*
     3 题目:猴子第一天摘了若干个桃子,当即吃了一半,还不解馋,又多吃了一个;第二天,吃剩下的桃子的一半,还不过瘾,又多吃了一个;
     4       以后每天都吃前一天剩下的一半多一个,到第10天想再吃时,只剩下一个桃子了。问第一天共摘了多少个桃子?
     5 
     6 解题思路:第一:这是一个连续求值的问题。知道第10天剩余桃子的数量,推算第一天摘了多少桃子。(由第十天推算出第九天剩余多少桃子,
     7                 由第九天推算出第八天剩余多少桃子。以此类推最终求出第一天摘了多少桃子)
     8           第二:在连续求值前会有一个结束条件。第10天桃子 = 1;
     9           第三:由1,2两点 选择用递归来解决这类问题,逻辑清晰。
    10           第四:上次求值结果 = (本次结果+1)*2  (找到通项公式)
    11 */
    12 int Peach(int n);
    13 int main(void)
    14 {
    15     int OnePeach = Peach(1);
    16 
    17     printf("%d
    ",OnePeach);
    18 
    19     return 0;
    20 }
    21 int Peach(int n)
    22 {
    23     if(10 == n)//结束条件:第10天的桃子数量 == 1
    24         return 1;
    25     else
    26         return (Peach(n+1)+1)*2;//第n次的桃子数 == (第n+1次的桃子数+1)*2
    27 }
  • 相关阅读:
    Win7下VS2010、IIS7配置常见问题收集
    ASP.NET 4.0尚未在 Web 服务器上注册 解决方法
    jQuery
    玩转OpenStack
    ubuntu14.04开启root用户 设置root密码 配置国内镜像源 设置分辨率
    JavaScripts基础
    css
    微信小程序Nginx环境配置
    html语言
    Python并发编程-redis-3.0.5 源码安装
  • 原文地址:https://www.cnblogs.com/wangchaomahan/p/9538020.html
Copyright © 2011-2022 走看看