我的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
答案 0 :(得分:0)
这是你在找什么?
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int f0 = 0;
int f1 = 1;
int fn = 0;
System.out.println("The largest number fibonnaci can be: ");
System.out.println("Input your number: ");
int number = in.nextInt();
if (number < 0){
System.out.println("Wrong! Max-value has to be at least 0.");
} else {
System.out.println(f0);
System.out.println(f1);
while (fn < number){
fn = f0 + f1;
f0 = f1;
f1 = fn;
if (fn < number){
System.out.println(fn);
}
}
}
}
答案 1 :(得分:0)
只需更改循环即可将increment-er(i)的值与'number'变量
进行比较for (i = 0; i<=number; i++){
//.........
}
如果要在系列中正确打印更高的数字,也可以使用double而不是int。
没有使用'value'变量。
此外,“斐波纳契最高价值”这一短语具有误导性。您提到的数字表示您示例中系列中的术语数。
如果您希望'number'成为系列中的最高值,请使用以下方法
do{
fn = f0 + f1;
System.out.println("Fibonnaci-tall " + i + " = " + f0);
f0 = f1;
f1 = fn;
i++;
}while(f0<=number);
答案 2 :(得分:0)
使用此程序,它将解决您的疑问。
答案 3 :(得分:0)
试试这个......它有效!
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.");
}
else{
int i=0;
int f0 = 0;
int f1 = 1;
int fn;
int value=0;
do{
//for (i = 0; i<=value; i++){
fn = f0 + f1;
System.out.println("Fibonacci-number " + i + " = " + f0);
f0 = f1;
f1 = fn;
value = number - f0;
i++;
}while(f0<=number);
}//else
}