我的斐波那契java代码的循环不会启动

时间:2019-02-06 17:00:26

标签: java

我需要为我的课程创建一个Fibonacci项目,并且我的循环不想开始

import java.util.Scanner;

public class FibonacciGenerator{
    public static void main(String[] args){
        Scanner sd = new Scanner(System.in);
        System.out.println("Enter the amount of fibonaccis you want: ");
        int ny = sd.nextInt();
        Fibonacci num = new Fibonacci(ny);

        System.out.println(num.getFib1());
        System.out.println(num.getFib2());

        for(int i = 1; i < ny; i++){
            System.out.println(num.nextNumber());
            num  = new Fibonacci(ny);
        }
    }
}

这是我的派生类,用于询问每个班级的学生

public class Fibonacci {
    private int n;
    private int fib1;
    private int fib2;
    private int fib3;

    public Fibonacci(int ny){
        n=ny;
        fib1=1;
        fib2=1;
        fib3=0;
    }
    public int nextNumber() {
        while(n>2) {
            fib3=fib1+fib2;
            fib1=fib2;
            fib2=fib3;
        }
        return fib3;
    }
    public int getFib1() {
        return fib1;
    }
    public int getFib2() {
        return fib2;
    }
}

希望这个问题不仅在我眼前,我也看不到。试图开始编码,所以这是一个开始。

2 个答案:

答案 0 :(得分:1)

您的斐波那契课程看起来像这样吗?

class FibonacciExample1{  
    public static void main(String args[]){    
        int n1=0,n2=1,n3,i,count=10;    
        System.out.print(n1+" "+n2);

        for(i=2;i<count;++i) {    
            n3=n1+n2;    
            System.out.print(" "+n3);    
            n1=n2;    
            n2=n3;    
        }
    }
} 

取自here

的示例

答案 1 :(得分:0)

如果必须这样做,我会选择其他方式-但这是您的程序,所以我只解决了您的错误:

public class  Fibonacci {
    private int n;
    private int fib1;
    private int fib2;
    private int fib3;

    public Fibonacci(int ny){
        n=ny;
        fib1=1;
        fib2=1;
        fib3=0;
    }
    public int nextNumber() {
        while(n-->2) {
            fib3=fib1+fib2;
            fib1=fib2;
            fib2=fib3;
        }
        return fib3;
    }
    public int getFib1() {
        return fib1;
    }
    public int getFib2() {
        return fib2;
    }
}
public class FibonacciGenerator{
    public static void main(String[] args) {
        Scanner sd = new Scanner(System.in);
        System.out.println("Enter the amount of fibonaccis you want: ");
        int ny = sd.nextInt();
        Fibonacci num = new Fibonacci(ny);

        System.out.println(num.getFib1());
        System.out.println(num.getFib2());

        for(int i = 3; i < ny; i++){
            num  = new Fibonacci(i);
            System.out.println(num.nextNumber());
        }
    }
}