国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

遞歸實現階乘

2019-11-14 16:32:47
字體:
來源:轉載
供稿:網友

如果想實現一個階乘,比如6 * 5 * 4 * 3 * 2 * 1,首先想到的可能是循環遍歷。如下:

    class PRogram
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入一個數");
            int number = Convert.ToInt32(Console.ReadLine());
            double result = JieCheng(number);
            Console.WriteLine(number.ToString() + "的階乘結果是:" + result.ToString());
            Console.ReadKey();
        }
 
        public static double JieCheng(int number)
        {
            if (number == 0)
            {
                return 0;
            }
 
            //初始值必須設置為1
            double result = 1;
 
            for (int i = number; i >= 1; i--)
            {
                result = result*i;
            }
            return result;
        }
    }

但以上的階乘還有一種實現方式:6 * (6-1) * (6-2) * (6-3) * (6-4) * (6-5) 或 6 * (6-1) * (5-1) * (4-1) * (3-1) * (2-1),也就是說后面數總是由前面的數減1得到的。

 

當實現的邏輯相同,且內部遞歸方法的參數可以由外部遞歸方法的參數,經過某種算法而獲得,這正是遞歸登場的時候。

        public static double JieCheng(int number)        {            if (number == 0)            {                return 1;            }            return number * JieCheng(number - 1);        }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汤阴县| 宁晋县| 石河子市| 抚顺县| 东莞市| 乌拉特中旗| 纳雍县| 淮阳县| 阳山县| 浮山县| 临高县| 乌兰察布市| 那坡县| 锡林郭勒盟| 若尔盖县| 清流县| 斗六市| 军事| 怀仁县| 焉耆| 类乌齐县| 金山区| 许昌县| 永定县| 尼勒克县| 会泽县| 康乐县| 钟祥市| 疏附县| 景德镇市| 怀仁县| 馆陶县| 新乐市| 东台市| 德兴市| 吴江市| 桃江县| 和顺县| 庆元县| 德令哈市| 民权县|