找到递归实现的递归部分和终止部分斐波那契数列
Fibonacci: 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 … …
终止部分:F1=1,F2=1;
递归部分为:F(n)=F(n-1)+F(n-2),其中 n>2 图解斐波那契递归过程
代码实现
public class Fibonacci {
public static void main(String[] args) {
f(5);
System.out.println(f(5));
fib(5);
System.out.println(fib(5));
}
//递归写斐波那契数列
public static int f(int n) {
// 1 2 3 5 8 13
// n=3 f(n)
// n=300
if (n == 1 || n == 2) {
return n;
} else {
return f(n - 1) + f(n - 2);
}
}
//循环斐波那契数列
public static int fib(int n) {
int res = -1;
if (n == 1 || n == 2) {
return n;
} else {
int n1 = 1;
int n2 = 2;
int N = 0;
for (int i = 3; i <= n; i++) {
N = n1 + n2;
n1 = n2;
n2 = N;
}
return N;
}
}
}