您的位置:首页 > 编程语言 > Java开发

Java输出斐波那契数列

2016-10-22 09:53 295 查看
梧桐更兼细雨,到黄昏、点点滴滴。—李清照《声声慢·寻寻觅觅》

java输出斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:
0、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*)


示例1

//package com.test;

/**
* Title: Fibonacci Description: 输出斐波那契数列(Fibonacci sequence)
* 0、1、1、2、3、5、8、13、21、34、……
* @author Peng
* @date 上午9:11:28
*/
public class Fibonacci {
public static void main(String[] args) {
print(13);
}

private static void print(int n) {
long i = 0;
long j = 1;
long sum = 0;
for (int k = 1; k <= n; k++) {
if (k == 1) {
System.out.print(1 + " ");
} else {
sum = i + j;
i = j;
j = sum;
System.out.print(sum + " ");
}
}
}
}


1 1 2 3 5 8 13 21 34 55 89 144  233


示例2

//package com.test;

public class Fibonacci3 {

// 使用递归方法
private static int getFibo(int i) {
if (i == 1 || i == 2)
return 1;
else
return getFibo(i - 1) + getFibo(i - 2);
}
public static void main(String[] args) {
System.out.println("斐波那契数列的前20项为:");
for (int j = 1; j <= 20; j++) {
System.out.print(getFibo(j) + " ");

/*每隔5个数换行
* if (j % 5 == 0)
System.out.println();*/
}
}
}


示例3

//package com.test;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Solution {
public static long Fibonacci(int n) {
long[] num = new long[100];
num[0] = 0;
num[1] = 1;
for (int i = 2; i < 100; i++) {
num[i] = num[i - 1] + num[i - 2];
}
return num
;
}
/*public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner in = new Scanner(System.in);
System.out.println("输入查询的数(整数):");
while (in.hasNext()) {
try {
System.out.println(Fibonacci(in.nextInt()));
} catch (InputMismatchException e) {
System.out.println("程序退出");
System.exit(0);
}
System.out.println("输入查询的数(输入任意字符退出):");
}
}*/
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息