斐波那契数列的非递归实现(Java)

package chapter_4;

public class Fibonacci {
	int i = 1;
	int j = 1;

	public void fibonacci(int n) {

		int time = 0;//初始化计数器
		int a = 0;//初始化中间变量

		
		int c[] =new int[n];//记录数列所有值
		c[0] = 1;
		c[1] = 1;
		
		if (n > 2) {
			time = 3;//第三项
			while (time < n + 1) {

					a = i + j;
					j = i;//保存F(n-2)
					i = a;//保存F(n-1)

					c[time-1] = a;
					time++;
	
			}
		}
		
		for(int k=0;k<=c.length-1;k++)
		{
		   System.out.println("第"+(k+1)+"个数"+c[k]);	
		}

	}

	public static void main(String[] args) {
		Fibonacci f = new Fibonacci();
		f.fibonacci(6);
	}

}

 将近半年没写代码,手都生了,于是决定重新看一遍Java编程思想这本书。

 p75页的练习9就是写一个程序输出斐波那契数列的前五位。

斐波那契数列的前五项是1,1,2,3,5。.其中第三项是前两项的和。既F(n)=F(n-2)+F(n-1)

很明显,前两项是无法通过动态变量实现的,只能静态定义,于是我设置了两个变量i,j,初始值都为1,

然后新建了一个数组c 在c[0],c[1]保存这两个变量,c的作用是记录斐波那契数列的所有值。

当n等于3的时候,就可以动态计算了。我决定用while循环来写。我设置了中间变量a记录项数为n的时候斐波那契数列的值,并设置了计数器time

n等3时,a=1+1=2.所以a=i+j。当n=4时。a=1+2,所以我令i=a,j=i。i记录F(n-1)的值,j记录F(n-2)的值。具体代码为package chapter_4;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值