斐波那契数列

斐波那契数列

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,……
注:第0项是0;第1项、第2项是1;从第3项开始,每一项都等于前两项之和。

以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

方法一:用递归实现。

这种实现方法最简单,但是效率太低了,当n>=50时,你会发现计算时间明显变长

package qq;

public class qq {	 	
	
		public static void main(String[] args) {
			 for (int counter = 1; counter <= 20; counter++){  
			      System.out.printf("Fibonacci of %d is: %d\n", counter, fibonacci(counter));
		        }
		    }
		 //使用递归
		public static long fibonacci(long number) {
	        if ((number == 0) || (number == 1))
	            return number;
	        else
	            return fibonacci(number - 1) + fibonacci(number - 2);//递归调用
		}
  }	

方法二:用for循环实现。

这种方法计算效率高

package qq;

public class qq {	 	
	
		public static void main(String[] args) {
			 for (int counter = 1; counter <= 10; counter++){  
			      System.out.printf("Fibonacci of %d is: %d\n", counter, fibonacci(counter));
		        }
		    }
		 //使用for循环
		public static long fibonacci(int n) {
	        if (n ==1 || n == 2) {
	            return 1;
	        }
	        long a =1l, b= 1l, c =0l;		//定义三个long类型整数
	        for (int i = 0; i < n - 2; i++) {
	            c = a + b;		//第3个数的值等于前两个数的和
	            a = b;			//第2个数的值赋值给第1个数
	            b = c;			//第3个数的值赋值给第2个数
	        }
	        return c;
	    }

  }	
Fibonacci of 1 is: 1
Fibonacci of 2 is: 1
Fibonacci of 3 is: 2
Fibonacci of 4 is: 3
Fibonacci of 5 is: 5
Fibonacci of 6 is: 8
Fibonacci of 7 is: 13
Fibonacci of 8 is: 21
Fibonacci of 9 is: 34
Fibonacci of 10 is: 55
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值