求n的阶乘递归方法Java

2023-05-16

了解递归、阶乘

我们先大致的了解一下递归

递归,就是在运行的过程中调用自己。

构成递归需具备的条件:

1. 子问题须与原始问题为同样的事,且更为简单;

2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理,不然就会栈溢出报错!

我们再了解一下阶乘

一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。  公式 n!=1×2×3×...×(n-1)×n

阶乘实现逻辑

我们已经了解了递归和阶乘的概念

写代码前我们要写出阶乘递归的公式这样才能更清楚写出代码

1.先给递归设立一个结束的条件

2.利用这个条件写出公式

递归结束条件

递归如果不加条件就会不停的调用自己,n的阶乘公式是 n!=1×2×3×...×(n-1)×n

假设n为3那么3的阶乘就是3!=3*2*1,如果用成n的就是n!=n*(n-1)*[(n-1)-1]

这样就看出来结束条件就是n=1的时候就结束了

那么公式就是n!=n*fac(n-1)

代码如下

public static int fac(int n){
        if(n==1){               //设立结束条件
            return 1;          //如果n=1那就返回1
        }
        return n*fac(n-1);  //如果n不等于1那就返回n*fac(n-1)继续调用函数直到n=1
    }


    public static void main(String[] args) {   //创建主函数
        int n = 3;                     //求n的阶乘
        int tmp = fac(n);           //调用函数
        System.out.println(tmp);   //打印3的阶乘
    }

这样就求出来n的阶乘了

有什么问题欢迎在评论区指出,大家一起变的更强。求点赞

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

求n的阶乘递归方法Java 的相关文章

随机推荐