该程序应该从用户那里获得一个斐波那契数,并且该程序将在确保用户输入一个正数和一个不小于斐波那契数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,它可以准确地处理任意大数。

10-05 23:44