循环阶乘(定义 n! = n*(n-1)(n-2)…1)
计算5的阶乘
Public Static void main(String[] args){
System.out.println(factorial(5));
}
public static int factorial(int n){
int sum =1;
for(int i = 2; i<=n;i++){
sum*=i;
}
return sum;
}
增加出口条件,当n=1时,无需计算阶乘,直接返回结果1
Public Static void main(String[] args){
System.out.println(factorial(5));
}
public static int factorial(int n){
if(n==1){
return 1;
} return n*factorial(n-1); //此为自己掉自己
}
注意:所有能以递归解决的问题,循环都可以解决。
当解决复杂问题是,递归的实现方式更为简单