自己知道用Java解决斐波那契,算法如下:package example;class Fn{
public int f(int n){
return (n == 1 ||n == 2) ? 1 : f(n - 1) + f(n - 2);
}
}
public class Main {
// 数列1 1 2 3 5 8 13.....即从第三项开始都为前两项的和
public static void main(String[] args) {
Fn fn = new Fn();
System.out.println(fn.f(6)); // 打印为8
}
}但我实在不明白f(n - 1) + f(n - 2);递归的作用,哪位兄弟能帮我解释下思路。
public int f(int n){
return (n == 1 ||n == 2) ? 1 : f(n - 1) + f(n - 2);
}
}
public class Main {
// 数列1 1 2 3 5 8 13.....即从第三项开始都为前两项的和
public static void main(String[] args) {
Fn fn = new Fn();
System.out.println(fn.f(6)); // 打印为8
}
}但我实在不明白f(n - 1) + f(n - 2);递归的作用,哪位兄弟能帮我解释下思路。
a[0]=a[1]=1;
for(int i=2;i<10;i++){
a[i]=a[i-2]+a[i-1];
}a数组里就是前10个斐波那契
PS:俺就是不爽JAVA的JVM, 虽然平台无关性, 不过想搞底层的话, 很难倒不如直接搞C、C++好过