1.计算一个数的阶乘,不使用递归
/**
* 打印5的阶乘到控制台
* 注意java中数据类型的最大值:
* Integer.MAX_VALUE=2147483647;
* Long.MAX_VALUE=9223372036854775807;
* Double.MAX_VALUE=1.7976931348623157E308
*/
@Test
public void getFactorial02(){
//打印5的阶乘到控制台
int num = 5;
int factorial = num;
if (num==1){
factorial = 1;
}else {
for (int i=1;i<num;i++){
factorial *= num-i;
}
}
(factorial);
}
2.计算一个数的阶乘,使用递归
/**
* 递归求一个数的阶乘,打印5的阶乘到控制台
* 注意java中数据类型的最大值:
* Integer.MAX_VALUE=2147483647;
* Long.MAX_VALUE=9223372036854775807;
* Double.MAX_VALUE=1.7976931348623157E308
*/
@Test
public void getFactorial01(){
//打印5的阶乘到控制台
(factorial(5));
}
/**
* 计算一个数的阶乘
* @param num
* @return
*/
private int factorial(int num){
if (num<=1){
return 1;
}else {
return num * factorial(num-1);
}
}