Java算法二:斐波那契数列
斐波那契数列:又称费式数列(Fibonacci)
问题说明:
又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”( Fibonacci为1200年代的欧洲数学家,在他的著作中曾经提到:若有一只兔子每个月生一只小兔子,一个月后小兔子也开始生产。起初只有一只兔子,一个月后就有两只兔子,两个月后有三只兔子,三个月后有五只兔子(小兔子投入生产)……),指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
结果:
Java代码:
package com.allen;
import java.util.Scanner;
public class Fibonacci1 { public static void main(String[] args) { System.out.println("请输入n"); Scanner cin = new Scanner(System.in); while(cin.hasNext()){ int n=cin.nextInt(); int[] a=new int[n+1]; for(int i=1;i<n+1;i++) {
System.out.print(sum(i,a)+" "); } } cin.close(); } static int sum(int n ,int[] a) { if(n==1||n==2) { a[n]=1; }else { a[n]=sum(n-1,a)+sum(n-2,a); } return a[n]; } } |