斐波那契数列:1、1、2、3、5、8、13、21、34、…… 即前两个数的和为当前数。
1 非递归实现
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int a = 0, b = 1, ret = 1;
int n = scanner.nextInt();
for (int i = 3; i <= n; i++) {
a = b;
b = ret;
ret = a + b;
}
System.out.println(ret);
}
scanner.close();
}
2 递归实现
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
System.out.println(F(n));
}
scanner.close();
}
public static int F(int n) {
if (n > 2) {
return F(n - 1) + F(n - 2);
}
return 1;
}
递归的要点:1.初始状态;2.自己调用自己;3.终止条件。