递归求斐波那契数列:打印前40个。
方法一:递归
package test;
public class PrintFib {
public static int fib(int n) {
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return (fib(n - 1) + fib(n - 2));
}
public static void main(String[] args) {
int i = 0;
while (i < 40) {
System.out.println(fib(i));
i = i + 1;
}
}
}
方法二:整型变量+for()循环
public class PrintFib {
public static void main(String[] args) {
// 定义第一个加数a,初始值为1;定义第二个加数b,初始值为1;定义两个加数之和为c,初始值为0
int a = 1;
int b = 1;
int c = 0;
System.out.print(a + "\t" + b + "\t");// 首先在控制台打印出数列中第一个数和第二个数的值
for (int i = 3; i <= 10; i++) { // 建立一个for循环,用于循环输出数列中第三位至第十位的数字
c = a + b;// 第三个数即为c,a+b等于c的值
a = b;// 将第一个加数a赋值为数列中的第二个数b的值
b = c;// 将第二个加数b赋值为数列中的第三个数c的值
System.out.print(c + "\t");// 在第二次循环打印时,将打印数列中的第四个数为:b + c = b + (a + b)
}
}
}
方法三:整型数组+for()循环

方法四:整型数组+for()循环

方法五:栈的思想

打印结果如下所示:
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
2178309
3524578
5702887
9227465
14930352
24157817
39088169
63245986
6390

被折叠的 条评论
为什么被折叠?



