public static int fb(int n)
{
if (n == 1 && n == 2)
{
return 1;
} else
{
return fb (n - 1) + fb(n - 2);
}
}
//stack溢出,没问题啊?
{
if (n == 1 && n == 2)
{
return 1;
} else
{
return fb (n - 1) + fb(n - 2);
}
}
//stack溢出,没问题啊?
{
return 1;
}
if (n == 1 || n == 2)
{
return 1;
}
public static int fb(int n){
return (1==n || 2==n)?1:(fb(n-2)+fb(n-1));
}
public static int fb(int n){
return (1==n || 2==n)?1:(fb(n-2)+fb(n-1));
}
这就行
判断语句错了 n怎么可能是1又是2呢
改成if (n == 1 || n == 2)
或if(n <= 2)
{
if (n == 1 && n == 2) //这个 && ,栈不溢出才怪
{
return 1;
} else
{
return fb (n - 1) + fb(n - 2);
}
}
换成||就可以!
{
if (n == 1 ||n == 2)
{
return 1;
} else
{
return fb (n - 1) + fb(n - 2);
}
}
public static int fb(int n){
return (1==n || 2==n)?1:(fb(n-2)+fb(n-1));
}
这就行
ding
{
return 1;
}
死循环,改为
if (n == 1 ||n == 2)
{
return 1;
}还是不严谨,如果传入了一个负数会怎样?
再加一个判断吧
呵呵,这个跳不出来了
这个条件有一个为真就全为真了吧。。要是if (n == 1 && n == 2)这就麻烦了
n既要=1 又要等于2 是并且的关系。 大家说呢?
{
return 1;
}
这种情况貌似永远也得不到
for(int i=1;i<=n;i++){
result*=i;
}
return result