求斐波那契数列的方法(Java语言)

递归求斐波那契数列:打印前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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢奕冰2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值