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

    题目:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾就多吃了一个。第二天早上又将剩下的桃子吃了一半,还是不过瘾又多

    吃了一个。以后每天都吃前一天剩下的一半再加一个。到第10天刚好剩一个。问猴子第一天摘了多少个桃子?

    分析:这个题目体现了算法思想中的递归和递推思想,不过一般递归和递推算法是可以转化的。

    递归算法:

        class Program
        {
            static void Main(string[] args)
            {
                int total = SumPeach(1);
    
                Console.WriteLine("第一天猴子摘了{0}个桃子",total);
                Console.ReadKey();
            }
            static int SumPeach(int day)
            {
                if (day == 10)
                {
                    return 1;
                }
                return 2 * SumPeach(day + 1) + 2;
            }
        }

    递推算法:

        class Program
        {
            static void Main(string[] args)
            {
                int total = 1;
                for (int day = 9; day > 0; day--)
                {
                    total = 2 * total + 2;
                }
    
                Console.WriteLine("第一天猴子摘了{0}个桃子", total);
                Console.ReadKey();
            }
            
        }
  • 相关阅读:
    update结合查询更新
    查表字段名,注释
    微信access_token
    Oracle中的dual伪表
    Oracle中的null
    UIView九宫格
    UIWebView使用
    sql触发器Tigger
    重写init方法
    OC内存管理示例
  • 原文地址:https://www.cnblogs.com/7ants/p/2947753.html
Copyright © 2011-2022 走看看