具有极限值的斐波那契数列 java
Fibonnaci sequence java with limit value
我的 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
这是您要找的吗?
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);
}
}
}
}
只需更改循环以将 increment-er (i) 的值与 'number ' 变量进行比较
for (i = 0; i<=number; i++){
//.........
}
如果你想正确打印系列中更大的数字,也可以使用 double 而不是 int。
没有使用 'value' 变量。
此外,短语 'the highest value fibonacci can have' 是 misleading.You 提到的数字表示您示例中系列中的术语数。
如果您希望 'number' 成为系列中的最高值,请使用以下方法,
do{
fn = f0 + f1;
System.out.println("Fibonnaci-tall " + i + " = " + f0);
f0 = f1;
f1 = fn;
i++;
}while(f0<=number);
使用这个程序,它会解决你的问题。
试试这个...它有效!
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
}
我的 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
这是您要找的吗?
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);
}
}
}
}
只需更改循环以将 increment-er (i) 的值与 'number ' 变量进行比较
for (i = 0; i<=number; i++){
//.........
}
如果你想正确打印系列中更大的数字,也可以使用 double 而不是 int。
没有使用 'value' 变量。
此外,短语 'the highest value fibonacci can have' 是 misleading.You 提到的数字表示您示例中系列中的术语数。
如果您希望 'number' 成为系列中的最高值,请使用以下方法,
do{
fn = f0 + f1;
System.out.println("Fibonnaci-tall " + i + " = " + f0);
f0 = f1;
f1 = fn;
i++;
}while(f0<=number);
使用这个程序,它会解决你的问题。
试试这个...它有效!
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
}