• 递归算法——猴子吃桃


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

    吃了一个。以后每天都吃前一天剩下的一半再加一个。到第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();
            }
            
        }
  • 相关阅读:
    UILabel 详解
    didMoveToSuperView 引发的思考
    Source
    设计模式
    Code ReView
    UIApearance
    UINavigationBar
    initWithNibName与viewDidLoad的执行关系以及顺序
    bLock 回调 就是这么简单!
    程序语言小记
  • 原文地址:https://www.cnblogs.com/7ants/p/2947753.html
Copyright © 2020-2023  润新知