/**
*
*/
package com.fuyou;
/**
* @author fuyou
*
*/
public class Factorial {
/**
* @param args
*/
public static void main(String[] args) {
String str = args[0]; //命令行取得的参数
int n = Integer.parseInt(str);
Factorial fc = new Factorial();
System.out.println(fc.getFactorial(n));
}
/*
* 当N大于17时,n!值超过了long类型的范围,会出现错误! 因此这里限定了N必须小于等于是17并且N大于等于0
*
*/
public long getFactorial(int n) {
System.out.println(n);
if ((n < 0) || (n > 17)) {
System.out.println("n的值必须在区间[0,17]内!");
return -1;
} else if (n == 0) {
return 1;
} else {
long result = 1;
while (n > 0) {
result *= n;
n--;
}
return result;
}
}
}