计算阶乘的两种实现方式(Java)

本文以计算5的阶乘为例:5! =5*4*3*2*1=120

一、循环阶乘

1、While循环

public class TestWhileFactorial{
    public static void main(String[] args){
        int result=factorial(5);
            System.out.println("5! ="+result);
  }
    public static int factorial(int n){
        int s=1;
        int i=1;
        while(i<=n){
            s*=i;
            i++;       
}
        return s;
    }

}

2、For循环

public class TestForFactorial{
    public static void main(String[] args){
        int result=factorial(5);
            System.out.println("5! ="+result);
  }
    public static int factorial(int n){    //定义一个factorial方法
        int s=1;
        if(int i=2;i<=n;i++){
            s*=i;
                
}
        return s;
    }

}

二、递归阶乘

public class Testfactorial{
    public static void main(String[] args){
        int result=factorial(5);
            System.out.println("5! ="+result);
  }
    public static int factorial(int n){
        if(n==1){
            return 1;    //增加出口条件,当n=1时,无需计算阶乘,直接返回结果1.
        }
        int s=n*factorial(n-1);
        return s;    
    }

}

注意:所有能以递归解决的问题,循环都可以解决。当解决复杂问题时,递归的实现方式更为简单。

上一篇:Java求阶乘和


下一篇:Python编程:初等数学题解(二)