剑指offer--斐波那契数列--递归和循环
/**
* 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。
n<=39
*/
package javabasic.nowcoder;
/*
* 不是不能用递归,递归本质上是栈,可能导致栈溢出,只要避免溢出就可以了,就可以使用尾递归解
* 迭代方法,用两个变量a和b分别记录fn-1和fn-2;
*/
public class Main10 {
public static void main(String[] args) {
System.out.println(Fibonacci(3));
}
public static int Fibonacci(int n) {
int rs = 0, a = 0, b = 1;
if(n == 0){
return 0;
}
if(n == 1 || n == 2){
return 1;
}
for(int i = 2; i <= n; i++){
rs = a + b;
a = b;
b = rs;
}
return rs;
}
}

浙公网安备 33010602011771号