对任意一个给定的整数求其阶乘,可以分别采用循环和递归的方法实现。采用递归的思想解决问题主要就是控制好入口和出口,入口及最初始的外部对函数的调用,出口即对于继续递归的限制条件。
- 循环的方法实现阶乘
public static int circleFactorial(int n){
int sum=1;
if(n<0){
throw new IllegalArgumentException("必须为整数!");
}
for(int i=1;i<=n;i++){
sum*=i;
}
return sum;
}
2.递归的方法实现阶乘
public static int recursiveFactorial(int n){
int sum=1;
if(n<0){
throw new IllegalArgumentException("必须为整数!");
}
if(n==1){
return 1;
}else{
sum=n*recursiveFactorial(n-1);
return sum;
}
}
3.main()函数
public static void main(String[] args) {
int n=5;
System.out.println("用循环的方法求"+n+"的阶乘,其结果为:
"+circleFactorial(n));
System.out.println("用递归的方法求"+n+"的阶乘,其结果为:
"+recursiveFactorial(n));
}