求n的阶乘递归方法Java

了解递归、阶乘

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

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

构成递归需具备的条件:

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的阶乘了

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

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值