面试过程中总是遇到要求写一段Java代码求阶乘。下面就是就是两种求阶乘 n! 的方法:
1、使用递归求解n!
1 public int doFactorial(int n){ 2 if(n<0){ 3 return -1;//传入的数据不合法 4 } 5 if(n==0){ 6 return 1; 7 }else if(n==1){//递归结束的条件 8 return 1; 9 }else{ 10 return n*doFactorial(n-1); 11 } 12 }
2、不使用递归求解n!
1 public int doFactorial(int n){ 2 int result = 1; 3 if(n<0){ 4 return -1;//返回-1,说明传入数据不合法 5 } 6 if(n==0){ 7 return 1; 8 } 9 for(int i =1;i<=n;i++){ 10 result*=i; 11 } 12 return result; 13 }