public class E09_Fibonacci {
static int fib(int n){
if ( n <= 2)
return 1;
return fib(n-1) + fib(n - 2);// return (fib(n-1) + fib(n - 2));
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
if(n < 0){
System.out.println("Cannot use negative numbers");
return;
}
for (int i = 1; i <= n; i++)
System.out.println(fib(i) + ", ");
}}
Java编程思想,第四章,练习9。
打完后运行报错:Exception in thread "main" java.lang.StackOverflowError at Unit4.E09_Fibonacci.fib(E09_Fibonacci.java:5)
原因:return后面的式子顺手打上了括号,去掉括号后运行正确✔