斐波那契数列除了用户输入的数字外不会打印任何内容
Fibonacci sequence will not print anything but the number that is inputted by the user
这是我的主要方法,我试图调用斐波那契数列来告诉我用户输入位置的数字是多少:
import java.util.Scanner; //import Scanner
public class Main {
public static void main(String[] args) {
System.out.println("enter number");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
Fibonacci fibonacci_test = new Fibonacci();
fibonacci_test.Recursivefibonacci(n);
}
}
这是我的斐波那契代码:
public class Fibonacci {
//Fn=F(n-1)+F(n-2)
//The recursive Fibonacci method
public int Recursivefibonacci(int n) {
if(n==0) {
return 0;
} if(n==1) {
return 1;
}else {
int fib = Recursivefibonacci(n-1)+Recursivefibonacci(n-2);
return fib;
}
}
}
我无法让这个东西打印任何东西。我该如何解决这个问题?
这是因为您没有打印其他任何东西。
您的方法不打印任何内容(只是 returns 一个值),并且您的主要方法不打印任何内容(除了“输入数字”)。
您可以尝试将:fibonacci_test.Recursivefibonacci(n);
更改为 println (fibonacci_test.Recursivefibonacci(n));
return Recursivefibonacci(n-1)+Recursivefibonacci(n-2);
而不是将其存储在变量中更合适。
这是我在python做的,你可以看看,尝试适配到java,也许对你有帮助。递归可能令人头疼,但看起来不错。
def fib(n):
if n == 0:
return 0
if n <= 1:
return 1
res = (fib(n-1)+ fib(n-2))
return res
///////
您的代码可能看起来像这样:
public int Recursivefibonacci(int n) {
if(n == 0){
return 0;
}
if(n <= 1) {
return 1;
}
int fib = Recursivefibonacci(n-1)+Recursivefibonacci(n-2);
return fib;
}
试试吧!让我知道它是否有效。
这是我的主要方法,我试图调用斐波那契数列来告诉我用户输入位置的数字是多少:
import java.util.Scanner; //import Scanner
public class Main {
public static void main(String[] args) {
System.out.println("enter number");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
Fibonacci fibonacci_test = new Fibonacci();
fibonacci_test.Recursivefibonacci(n);
}
}
这是我的斐波那契代码:
public class Fibonacci {
//Fn=F(n-1)+F(n-2)
//The recursive Fibonacci method
public int Recursivefibonacci(int n) {
if(n==0) {
return 0;
} if(n==1) {
return 1;
}else {
int fib = Recursivefibonacci(n-1)+Recursivefibonacci(n-2);
return fib;
}
}
}
我无法让这个东西打印任何东西。我该如何解决这个问题?
这是因为您没有打印其他任何东西。 您的方法不打印任何内容(只是 returns 一个值),并且您的主要方法不打印任何内容(除了“输入数字”)。
您可以尝试将:fibonacci_test.Recursivefibonacci(n);
更改为 println (fibonacci_test.Recursivefibonacci(n));
return Recursivefibonacci(n-1)+Recursivefibonacci(n-2);
而不是将其存储在变量中更合适。
这是我在python做的,你可以看看,尝试适配到java,也许对你有帮助。递归可能令人头疼,但看起来不错。
def fib(n):
if n == 0:
return 0
if n <= 1:
return 1
res = (fib(n-1)+ fib(n-2))
return res
/////// 您的代码可能看起来像这样:
public int Recursivefibonacci(int n) {
if(n == 0){
return 0;
}
if(n <= 1) {
return 1;
}
int fib = Recursivefibonacci(n-1)+Recursivefibonacci(n-2);
return fib;
}
试试吧!让我知道它是否有效。