递归实现阶乘

摘要:
如果你想实现一个阶乘,比如6*5*4*3*2*1,你可以首先想到循环遍历。当实现的逻辑相同,并且可以通过某种算法从外部递归方法的参数中获得内部递归法的参数时,这就是递归的时间。

如果想实现一个阶乘,比如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);
        }

免责声明:文章转载自《递归实现阶乘》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VUE+Flask登录的初探--前端(Vue+element+axios)+后端(Flask+FlaskLogin+JWT)iOS 三种录制视频方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

汉诺塔——递归

汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?假如有三根柱子: 1、过程分析:...

JAVA File类 打印目录树状结构图 递归算法

要实现把制定目录下的所有文件,按照树状结构打印出来的目的。 代码如下:package cn.bjsxt.io;import java.io.File;public class FileTree {public static void main(String[] args) {File f=new File("E:/有用的文档"); //假设打印这...

Sine之舞---递归

蓝桥杯基础练习:Sine之舞 问题描述   最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。  不妨设  An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)  Sn=(...(A1+n)A2+n-1)A...

js 递归树结构数据查找父级

1.json树数据查找所有父级--完成 json:树结构数据 var arrData =[{ "label": "中国", "City": null, "value": "0", "children": [{ "label": "河北", "City": "0",...

Java 查询数据后进行递归操作

java的递归方法记录: private List<Map<String, Object>> generateOrgMapToTree(List<Map<String, Object>>orgMaps, Integer pid) { if (null == orgMaps || orgMaps...

ASP.net MVC、Extjs多级目录(理论上可以无限级、非递归)treepanel显示和数据库(多级目录)存储结构的设计(上篇)

1、数据库(多级目录)存储结构的设计1.1、表设计           1.2、数据显示及相关信息: 升序:   select C.tre_parent,B.tre_name as tre_parentname,C.tre_children as tre_children,A.tre_name as tre_childrenname,C.tre_ch...