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