首页 热点资讯 义务教育 高等教育 出国留学 考研考公

如何用java语言输出斐波那契数列

发布网友 发布时间:2022-04-20 04:48

我来回答

15个回答

热心网友 时间:2022-05-16 06:23


其一方法:

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();  
        }  
    }  
  
}


其二方法:

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");  
        }  
    }  
  
}

其三方法:

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();  
        }  
    }  
  
}

同一道题用各种不同的思路去思考解决,也是对知识综合运用的锻炼。

热心网友 时间:2022-05-16 07:41

/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class Fibonacci{
 public static void main(String[] args) {
  int a=1, b=1, c=0;
  System.out.print(a + "\t" + b + "\t");
  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();  
  }
 }
}

热心网友 时间:2022-05-16 09:16

使用递归的方式:
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){
    //取第10个数值
    System.out.println(getFibo(10));
}

热心网友 时间:2022-05-16 11:07

int n=10;//n为您要输出的项数
int x=1,y=1;//我们以1为首项
System.out.print(x+" "+y);
for(int i=0;i<n;i++){
int t=y;//记录y的值
y=x+y;//计算下一项并赋值给y
x=t;//将原来的y值给x
System.out.print(" "+y);

如果有问题请继续追问,我将竭尽全力为您解答。

热心网友 时间:2022-05-16 13:15

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;
}
}
}

直接给你参考代码吧,有问题请追问

热心网友 时间:2022-05-16 15:40

仅供参考

package com.kidd.test.;

/**
 * Hello world!
 *
 */
public class Execute {
public static void main(String[] args) {
int max = 12;// 数列的长度,必须大于2

long a = 1;// 数列的第一个数
long b = 1;// 数列的第二个数

System.out.print(a);
System.out.print(" ");
System.out.print(b);
System.out.print(" ");

int index = 2;// 已输出的数列的个数,方便换行
long temp;
for (int i = 2; i < max; i++) {
temp = a + b;
System.out.print(temp);
System.out.print(" ");

a = b;
b = temp;

// 输出换行
index++;
if (index == 10) {
System.out.println("");
index = 0;
}
}

}

}

热心网友 时间:2022-05-16 18:21

/**
 * 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);

    }
}

热心网友 时间:2022-05-16 21:19

import java.util.Scanner;

public class Testaa {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入1到几的斐波那契数列 ");
int nextInt = sc.nextInt();
for(int j=1;j<=nextInt;j++){
System.out.println(show(j));
}
}
public static int show(int i){
if(i==1||i==2){
return 1;
}else{
return show(i-1)+show(i-2);
}
}
}

热心网友 时间:2022-05-17 00:34

public class Fibonacci {

//数列算法,第几个数,第一个数为0,以此类推
public static int F(int k)
{
int n=k-1;
if(n==0){
return 0;
}
if(n==1){
return 1;
}
return F(k-1)+F(k-2);
}

public static void main(String[] args){
int n=9;//打印9个数
for(int i=1;i<=n;i++){
System.out.println(F(i));
}

}
}

热心网友 时间:2022-05-17 04:05

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();  
        }  
    }  
  
}

热心网友 时间:2022-05-17 07:53

import java.math.BigInteger; //导入BigInteger数组
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!");
}
}
}

热心网友 时间:2022-05-17 11:58

具体代码如下:

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)=

fib(12)=144

fib(13)=233

fib(14)=377

fib(15)=610

热心网友 时间:2022-05-17 16:19

double fbla(double n){
double f=0,g=1;
while(0<n--){
g=g+f;
f=g-f;
}
return g;
}

热心网友 时间:2022-05-17 20:57

public class test_fibonacci_numbers {
public static void main(String[] args) {
int[] a = new int[10];
a[0]=0;
a[1]=1;
for (int i=2; i<a.length; i++)
a[i]=a[i-1]+a[i-2];

for(int i=2; i<a.length; i++)
System.out.println(a[i]);
}
}

热心网友 时间:2022-05-18 01:52

int f1=1,f2=1,f,M=24;
for(int i=3;i<=M;i++){
f=f2;
f2=f1+f2;
f1=f;
System.out.println(i);
System.out.println(f2);
}
}
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com