具有极限值的Fibonnaci序列java

时间:2016-09-10 11:09:43

标签: java for-loop fibonacci

我的java程序需要帮助。该程序应该要求斐波纳契可以具有的最高价值,并打印出该值的系列数量,但它不起作用。有什么建议吗?

import java.util.Scanner;

public class Fibonacci {
    public static void main (String[] args){
        Scanner in = new Scanner(System.in);
        System.out.println("The largest number fibonacci can be: ");
        int number = in.nextInt();
        if (number < 0){
            System.out.println("Wrong! Max-value has to be at least 0.");
        }
        int i;
        int f0 = 0;
        int f1 = 1;
        int fn;
        int value=0;
        for (i = 0; i<=value; i++){
            fn = f0 + f1;
            System.out.println("Fibonacci-number " + i + " = " + f0);
            f0 = f1;
            f1 = fn;
            value = number - f0;
        }
    }
}

如果我输入number = 12,该程序应打印:

fibonacci-number 0 = 0 

...

fibonnaci-number 12 = 144

4 个答案:

答案 0 :(得分:0)

这是你在找什么?

    public static void main(String[] args) {

Scanner in = new Scanner(System.in);
int f0 = 0;
int f1 = 1;
int fn = 0;

System.out.println("The largest number fibonnaci can be: ");
System.out.println("Input your number: ");
int number = in.nextInt();

if (number < 0){
    System.out.println("Wrong! Max-value has to be at least 0.");
} else {
    System.out.println(f0);
    System.out.println(f1);
    while (fn < number){
        fn = f0 + f1;
        f0 = f1;
        f1 = fn;
        if (fn < number){
            System.out.println(fn);
        }
    }
}
}

答案 1 :(得分:0)

只需更改循环即可将increment-er(i)的值与'number'变量

进行比较
for (i = 0; i<=number; i++){
//.........
}

如果要在系列中正确打印更高的数字,也可以使用double而不是int。

没有使用'value'变量。

此外,“斐波纳契最高价值”这一短语具有误导性。您提到的数字表示您示例中系列中的术语数。

如果您希望'number'成为系列中的最高值,请使用以下方法

do{

        fn = f0 + f1;
        System.out.println("Fibonnaci-tall " + i + " = " + f0);
        f0 = f1;
        f1 = fn;
        i++;

}while(f0<=number);

答案 2 :(得分:0)

enter image description here

使用此程序,它将解决您的疑问。

答案 3 :(得分:0)

试试这个......它有效!

 public static void main (String[] args){
    Scanner in = new Scanner(System.in);
    System.out.println("The largest number fibonacci can be: ");
    int number = in.nextInt();
    if (number < 0){
        System.out.println("Wrong! Max-value has to be at least 0.");
    }
    else{
    int i=0;
    int f0 = 0;
    int f1 = 1;
    int fn;
    int value=0;
   do{
    //for (i = 0; i<=value; i++){
        fn = f0 + f1;
        System.out.println("Fibonacci-number " + i + " = " + f0);
        f0 = f1;
        f1 = fn;
        value = number - f0;
        i++;
    }while(f0<=number);
}//else
}