斐波那契和(Java)
最近,我一直在做一项赋值工作,以查找递归形式的数字(用户输入,正整数)的斐波那契和,例如(输出为): 9 = 8 + 1 14 = 13 + 1 30 = 21 + 8 + 1 等等 到目前为止,我已经制作了递归函数来计算实际的斐波那契数(例如9和中的8和1),它看起来如下所示:斐波那契和(Java),java,recursion,netbeans,fibonacci,Java,Recursion,Netbeans,Fibonacci,最近,我一直在做一项赋值工作,以查找递归形式的数字(用户输入,正整数)的斐波那契和,例如(输出为): 9 = 8 + 1 14 = 13 + 1 30 = 21 + 8 + 1 等等 到目前为止,我已经制作了递归函数来计算实际的斐波那契数(例如9和中的8和1),它看起来如下所示: static long[] f = new long[50]; static long fib(int n) { if (n <= 1) { //base case return 1;
static long[] f = new long[50];
static long fib(int n) {
if (n <= 1) { //base case
return 1;
}
if (n < f.length) {
if (f[n] != 0) {
return f[n];
}
return f[n] = fib(n - 1) + fib(n - 2);
}
return fib(n - 1) + fib(n - 2);
}
您的函数中似乎存在各种问题:
n = 2.
fib(0) = 1
if(2 - 1 == 0) => false
if(2 < 1 && 2 > fib(-1)) => false && error.
// Displays nothing. Should display: 2 = 1 + 1
n=2。
fib(0)=1
如果(2-1==0)=>false
如果(2<1&&2>fib(-1))=>false&&error。
//不显示任何内容。应显示:2=1+1
终于找到了答案,这次使用了while循环。无论我尝试了多少次修复for循环,我的输出都会遇到问题,因此我使用了一个布尔变量,并在达到n=0时将其设为false 我认为由于fib函数的基本情况n
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please enter an integer number: ");
int n = scan.nextInt();
fibSum(n);
n = 2.
fib(0) = 1
if(2 - 1 == 0) => false
if(2 < 1 && 2 > fib(-1)) => false && error.
// Displays nothing. Should display: 2 = 1 + 1