该程序应该从用户处获取斐波那契数,并且程序将计算该数,同时确保用户输入正数且不小于斐波那契数 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/