Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的斐波那契算法的Java实现不起作用。_Java_Fibonacci - Fatal编程技术网

我的斐波那契算法的Java实现不起作用。

我的斐波那契算法的Java实现不起作用。,java,fibonacci,Java,Fibonacci,我正试图编写一个Java程序,生成“n”个斐波那契数。我做错了什么 public class project7 { public static void main(String[] args) { ConsoleReader console = new ConsoleReader(System.in); int fold1 = 1; int fold2 = 1; System.out.println("Enter

我正试图编写一个Java程序,生成“n”个斐波那契数。我做错了什么

 public class project7 {

    public static void main(String[] args) {
        ConsoleReader console = new ConsoleReader(System.in);

        int fold1 = 1;
        int fold2 = 1;


        System.out.println("Enter the number of times you would like to compute:");
        int n = console.readInt();

        for(int i = 0; i <= n; i++ ){

            fold1++;
            fold2++;
        }

        int fnew = fold1 + fold2;
        System.out.println(fnew);

    }
}
公共类项目7{
公共静态void main(字符串[]args){
ConsoleReader控制台=新的ConsoleReader(System.in);
int fold1=1;
int fold2=1;
System.out.println(“输入要计算的次数:”);
int n=console.readInt();

对于(inti=0;i除了一个数字之外,你还期待什么?? 因此,首先初始化控制台读取器以获取用户输入。
然后你初始化2个整数为值1…fold1和fold2…然后你得到一个int n的输入值…所有这些都很好。然后你使n+1循环递增fold1和fold2…好的..然后你把它们加在fnew中并打印结果…这就是代码的作用。假设你得到一个输入值5…fold1将递增6倍在六个循环中使用1 so(因为简单地说,你的算法是错误的。在代码末尾,
fnew==2*(n+2)
(这显然是错误的)。看看你是否能找出原因!;-)它适用于n=3吗?n=4?我建议用钢笔+纸写下算法的每一步,计算小n值,你应该很快找出问题所在…我的输出是8乘3,所以不完全正确。认真地看一下斐波那契序列的定义,让你的大脑工作起来。你只是在添加相同的数字r每次在这里..我想最后它实际上是
fnew==2*(n+2)
。这就是它输出的东西16而不是14尝试这个…for(int i=1;iAfter int n=console.readInt();go for System.out.println(n);只是为了确认您没有输入错误……这很奇怪,在任何赋值/操作后打印所有整数……这将有助于发现错误……告诉我哪一步导致意外值,错误将继续我更新了我的答案请查看并接受是否有效
for(int i=0; i<n;i++)
{
Fnew = fold1 + fold2;
fold1 = fold2;
fold2 = Fnew;