【发布时间】:2017-01-18 10:08:06
【问题描述】:
我的 java 程序需要帮助。该程序应该要求斐波那契可以具有的最高值,并打印出该值的系列数,但它不起作用。有什么建议吗?
import java.util.Scanner;
public class Fibonacci {
public static void main (String[] args){
Scanner in = new Scanner(System.in);
System.out.println("The largest number fibonacci can be: ");
int number = in.nextInt();
if (number < 0){
System.out.println("Wrong! Max-value has to be at least 0.");
}
int i;
int f0 = 0;
int f1 = 1;
int fn;
int value=0;
for (i = 0; i<=value; i++){
fn = f0 + f1;
System.out.println("Fibonacci-number " + i + " = " + f0);
f0 = f1;
f1 = fn;
value = number - f0;
}
}
}
如果我输入number = 12,程序应该会打印:
fibonacci-number 0 = 0
...
fibonnaci-number 12 = 144
【问题讨论】:
-
"[...] but it doesn't work" => 这不是一个充分的问题描述。请告诉我们您的期望,以及会发生什么。当您的程序要求用户输入时,请告诉我们您正在测试的输入值。并且 - 最后但并非最不重要的一点 - 开始学习如何debug a Java program。
-
我不明白你的
for循环,for (i = 0; i<=value; i++),它只会运行一次,那有什么意义呢? -
@smoggers 仔细观察,你会发现“值”稍后发生了变化。也就是说,我不确定这个 for 循环是否正确指定。它不应该继续运行直到值达到某个数字吗?