递归和迭代

来源:互联网 发布:java发送get请求 编辑:程序博客网 时间:2024/04/27 17:16
package com.yuxinyicheng.test;


public class Factorial {

//使用迭代方法计算n的阶乘
public static long getFactorial(int n) throws Exception{
int result=1;
for(int i=1;i<=n;i++){
//为了防止出现reslut溢出的现象
if(result*i>Long.MAX_VALUE || result*i<0)
throw new Exception("计算溢出!");
result=result*i;
}
return result;
}

//使用递归的方法计算N的阶乘
public static long getFactorial2(int n) throws Exception{
long result=1;
result =getFactorial(n-1)*n;
return result;
}


public static void main(String[] args){
try {
System.out.println(getFactorial2(5));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
0 0