java - 斐波那契计算

标签 java numbers fibonacci

该程序应该从用户处获取斐波那契数,并且程序将计算该数,同时确保用户输入正数且不小于斐波那契数 70。因此,如果用户输入7,它应该打印 13。 fibcalc() 方法应该执行计算。 当我尝试编译程序时,出现错误“Fibonacci 类中的方法 fibcalc 无法应用于给定类型:System.out.printf("Fibonacci #%d is %f", num, fibcalc(num, x3)); 和“找不到符号”return x3;这是我的代码:

import java.util.Scanner;

public class Fibonacci
{
    public static void main ( String args[] ) 
    {
    Scanner input = new Scanner ( System.in );

        int num; 
        double x3 = 0;


           System.out.print("Which Fibonacci number would you like? ");
       num = input.nextInt(); 
           do
       {
        System.out.print("Which Fibonacci number would you like? ");
        num = input.nextInt(); 
    }while(num >= 0 && num <= 70);

    System.out.printf("Fibonacci #%d is %f", num, fibcalc(num, x3));

}


public static double fibcalc(int num) 
{
    int x1 = 0;
    int x2 = 1;

        if (num == 0)

            return 0;

        else if (num == 1)

            return 1;

        else

            for (int x3 = 0; x3 < num; x3++)
                {
                    x3 = x1 + x2;
                    x1 = x2;
                    x2 = x3;
                }
                return x3;

}
  }

可能还有其他我错过的问题。我对java很陌生。提前致谢。

最佳答案

fibcalc() 方法有一个 int 参数,但您使用两个 参数调用它。

更改通话来源

fibcalc(num, x3)

fibcalc(num)

即将该行更改为:

System.out.printf("Fibonacci #%d is %f", num, fibcalc(num));
<小时/>

此外,如果您想要结果的准确数字,请将使用 double 更改为使用 BigInteger ,可以准确处理任意大的数字。

关于java - 斐波那契计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15892801/

相关文章:

java - 从 Asciidoctor 创建 PDF 文件时出现异常

javascript - 扩展 Number 得到一个自然数

计算从键盘输入的两个日期之间的天数

java - 为什么BigInteger会在19635年的Fibonacci序列中的整数处以Java中的StackOverflowError结尾

java - 美国 map 的四色定理Java实现

Java显示不同的对象

python - python中的生成器错误

java - 大量查找斐波那契数的逻辑失败

java - 构造函数未定义,Eclipse 说,但它已定义 (Java)

javascript - 与比较运算符的混淆