我正在准备使用递归和记忆的斐波那契数列程序,但是我无法使用object将值传递给该方法。谁能指出我的代码出了什么问题
class fib_mem
{
int f []=new int[10];
int fibmem(int n)
{
if(n<1)
{
f[n]=n;
return n;
}
else
{
if(f[n-2]==-1)
{
f[n-2]=fibmem(n-2);
}
if(f[n-1]==-1)
{
f[n-1]=fibmem(n-1);
}
f[n]=f[n-2]+f[n-1];
return f[n-2]+f[n-1];
}
}
}
class abc
{
public static void main(String[] args) {
fib_mem obj=new fib_mem(5);
int a=obj.fibmem();
System.out.println(""+a);
}
}
class abc
{
public static void main(String[] args) {
// creating an object using constructor
fib_mem obj=new fib_mem();
// sending 5 as an argument to the method fib_mem
int a=obj.fibmem(5);
System.out.println(""+a);
}
}
应该像在方法-fib_mem()
中那样传递数字5,但不要像在您的构造方法-fib_mem obj=new fib_mem(5);
中那样传递数字。
public class Main {
static boolean stop = false;
static int counter = 0;
public static void main(String[] args) {
System.out.print(0 + " ");
System.out.print(1 + " ");
printFiboRecursive(0,1);
}
static void printFiboRecursive(int a, int b){
if(counter > 10){
stop = true;
}
if(stop != true){
System.out.print(a+b + " ");
counter++;
int para1 = b;
int para2 = a+b;
printFiboRecursive(para1,para2);
}
}
}
这里我创建了简单易懂的代码,为您显示斐波那契的序列。希望它可以帮助您创建自己的。类已被静态方法替换,并且不是递归的。
public class Main { public static void main(String[] args) { printFibonacciSequence(5); } static void printFibonacciSequence(int amount){ int a=0; int b=1; int temp=0; System.out.print(a + " "); System.out.print(b + " "); for(int i=0 ; i< (amount-2) ; i++){ temp = a+b; System.out.print(temp + " "); a=b; b=temp; } } }
输出将是:
0 1 1 2 3
更改main中方法的参数以获得更多数字。