如何用java语言输出斐波那契数列
Java编程:三种方法实现斐波那契数列
其一方法:
public class Demo2 {
// 定义三个变量方法
public static void main(String[] args) {
int a = 1, b = 1, c = 0;
System.out.println("斐波那契数列前20项为:");
System.out.print(a + "\t" + b + "\t");
//因为前面还有两个1、1 所以i<=18
for (int i = 1; i <= 18; i++) {
c = a + b;
a = b;
b = c;
System.out.print(c + "\t");
if ((i + 2) % 5 == 0)
System.out.println();
}
}
}
java编程:三种方法实现斐波那契数列
其二方法:
public class Demo3 {
// 定义数组方法
public static void main(String[] args) {
int arr[] = new int[20];
arr[0] = arr[1] = 1;
for (int i = 2; i < arr.length; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for (int i = 0; i < arr.length; i++) {
if (i % 5 == 0)
System.out.println();
System.out.print(arr[i] + "\t");
}
}
}
Java编程:三种方法实现斐波那契数列
其三方法:
public class Demo4 {
// 使用递归方法
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) + "\t");
if (j % 5 == 0)
System.out.println();
}
}
}
同一道题用各种不同的思路去思考解决,也是对知识综合运用的锻炼。
/**
* Created by admin on 2017/6/21.
*/
public class Fibonacci {
/**
* 输出指定个数的斐波那契数列
*
* @param n
*/
public static void printFibonacci(int n) {
int[] init = {1, 1};
int last2 = 1;
int last = 1;
for (int i = 0; i < n; i++) {
if (i < init.length) {
System.out.print(" " + init[i]);
} else {
System.out.print(" " + (last2 + last));
int tmp = last;
last = last2 + last;
last2 = tmp;
}
}
System.out.println();
}
public static void main(String args[]) {
printFibonacci(3);
printFibonacci(7);
printFibonacci(15);
}
}
推荐于2018-04-07 · 知道合伙人互联网行家
import java.util.Scanner; //导入 java.util 包下的 Scanner 类
public class Fibonacci { //创建一个Fibonacci 类
public static void main(String[] args) { //主方法
System.out.println("Please input numbers of fibonacci sequence:"); //打印输出信息,换行
Scanner scan = new Scanner(System.in); //对输入流进行封装
//使用Scanner类创建一个对象scan,调用下列方法,读取用户在命令行输入的数据类型
try { //可能产生异常的代码段
int num=scan.nextInt(); //接收一个从控制台输入的整数
BigInteger firstNum = BigInteger.ONE;
BigInteger secondNum = BigInteger.ONE;
BigInteger result = BigInteger.ZERO;
for (int i = 0; i < num; i++) {
if (i == 0 || i == 1) {
result = BigInteger.ONE;
} else {
result = secondNum.add(firstNum); //secondNum和firstNum做加法运算
firstNum = secondNum;
secondNum = result;
}
System.out.print(result + " ");
}
} catch (Exception e) { //捕获的异常类型
System.out.println("Please input valid number!");
}
}
}
import java.util.Scanner;
public class Fibonacci {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要打印前多少项的斐波那契数列");
int n = sc.nextInt();
printFibonacci(n);
}
static void printFibonacci(int n){
int firstNum = 1;
int secNum = 1;
if(n>=1){
System.out.print(firstNum+" ");
}
if(n>=2){
System.out.print(secNum+" ");
}
for(int i=3;i<=n;i++){
int temp = firstNum+secNum;
System.out.print(temp+" ");
firstNum = secNum;
secNum = temp;
}
}
}
直接给你参考代码吧,有问题请追问
具体代码如下:
public class Test {
public int fib(int n)
{
if(n==1 || n==2)//当n=1或2时 返回1
{
return 1;
}
return fib(n-1)+fib(n-2);//返回前两项的和
}
public static void main(String[] args) {
Test t = new Test();
for (int i = 1; i <= 15; i++) {
System.out.printf ("fib(%d)=%d\n",i,t.fib(i));
}
}
}
运行结果:
fib(1)=1
fib(2)=1
fib(3)=2
fib(4)=3
fib(5)=5
fib(6)=8
fib(7)=13
fib(8)=21
fib(9)=34
fib(10)=55
fib(11)=89
fib(12)=144
fib(13)=233
fib(14)=377
fib(15)=610