3d动态壁纸龙卷风:JAVA中的递归调用问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 02:51:45
public class Fibonacci{
static int f(int n){
int c=1;
if(n<=0){
System.out.println("Error!");
}
else if(n==1||n==2) c=1;
else c=f(n-2)+f(n-1);
System.out.print(c+" ");
return (c);
}
public static void main(String args[]){
f(6);
}
}
这是Fibonacci数列,算法为f(n)=f(n-1)+f(n-2),目的显示:1 1 2 3 5 8 13
可为什么显示的是:111231121112358
应该如何修改?

class Fibi
{ public long fibinacii(int n)
{ long c=0;
if(n==1||n==2)
c=1;
else
c=fibinacii(n-1)+fibinacii(n-2);
return c;
}
}
public class Fibinacci
{ public static void main(String args[])
{ Fibi a=new Fibi();
for(int i=1;i<=6;i++)
{ System.out.print(" "+a.fibinacii(i));
}
}
}

这个是用数组实现的,你原来的程序重复的显示了两次!大概前面声明和函数表达有问题.还有一种就是"{""}"位置不太合适!但是我也是初学者,所以能力有限!但这个程序我已调试过了!应该没什么问题!