用递归实现阶乘
package com.plato.method;
import java.util.Scanner;
public class MethodDemo05 {
public static void main(String[] args) {
//递归示例:计算阶乘
Scanner scanner = new Scanner(System.in);
System.out.println(f(scanner.nextInt()));
}
public static int f(int num) {
if (num < 0) {
System.out.println("请输入自然数!");
return num;
} else if (num == 0) {
return 1; //0的阶乘是1
} else if (num == 1) {
return 1; //边界条件
} else {
return num * f(num - 1);
}
}
}
递归如果没有边界条件就会发生栈溢出错误(StackOverflowError),栈溢出是很严重的问题。