[英]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;
}
}
}
我无法让这个东西打印任何东西。 我怎样才能解决这个问题?
这是因为你没有打印任何其他东西。 你的方法不打印任何东西(只返回一个值),你的 main 不打印任何东西(除了“输入数字”)。
您可以尝试更改: fibonacci_test.Recursivefibonacci(n);
到println (fibonacci_test.Recursivefibonacci(n));
返回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;
}
}
}
我不能让这个东西打印任何东西。 我怎样才能解决这个问题?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.