/**
* Factorial.java
*
* 该类从命令行接受数字参数,实现n的阶乘.
*
* @author Administrator
*/
public class Factorial {
public static int factorial(int n) {
if(n > 1) {
return n*factorial(n - 1);
}else {
return 1;
}
}
public static void main(String[] args) {
if(args.length == 0){
System.exit(-1);
}
int n = Integer.parseInt(args[0]);
int ft_value = factorial(n);
System.out.println(ft_value );
}
}
简化后的代码:
public static int factorial(int n) {
if(n > 1)
return n*factorial(n - 1);
return 1;
}
消除递归:
public static int factorial(int n) {
int rs = 1;
for(int i = 1; i <= n; i ++)
rs = rs * i;
return rs;
}