java中四种阶乘的计算

package com.zf.s2;//创建一个包

 

import java.math.BigInteger;//导入类

import java.util.ArrayList;

import java.util.List;

 

public class TextFactorial {//操作计算阶乘的类

    public static int simpleCircle(int num){//简单的循环计算的阶乘

        int sum=1;

        if(num<0){//判断传入数是否为负数

            throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常

        }

        for(int i=1;i<=num;i++){//循环num

            sum *= i;//每循环一次进行乘法运算

        }

        return sum;//返回阶乘的值

    }

    public static int recursion(int num){//利用递归计算阶乘

        int sum=1;

        if(num < 0)

            throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常

        if(num==1){

            return 1;//根据条件,跳出循环

        }else{

            sum=num * recursion(num-1);//运用递归计算

            return sum;

        }

    }

    public static long addArray(int num){//数组添加计算阶乘

        long[]arr=new long[21];//创建数组

        arr[0]=1;

         

        int last=0;

        if(num>=arr.length){

            throw new IllegalArgumentException("传入的值太大");//抛出传入的数太大异常

        }

        if(num < 0)

            throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常

        while(last


注意:0!=1

你可能感兴趣的:(java)