剑指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; } }