问题描述
- 哪个大婶能不能教会我如何用递归计算费波拉契数列的程序?要注释的
-
哪个大婶能不能教会我如何用递归计算费波拉契数列的程序?要注释的
解决方案
void foo(int x, int y)
{
if (x > 1000) return;
if (x == y && x == 1)
{
printf("%d %d ", 1, 1);
foo(x + y, x);
return;
}
else
{
printf("%d ", x);
foo(x + y, x);
}
}
int main()
{
foo(1, 1);
}
解决方案二:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
解决方案三:
Long F(int n)
{
If(n>2)
Return F(n-1)+F(n-2);
Else
Return 1;
}
解决方案四:
long F(int n)
{
If(n>=2)
return F(n-1)+F(n-2);
else
return 1;
}
解决方案五:
Long F(int n)
{
if(n>2)
return F(n-1)+F(n-2); //n>2,递归
else
return 1; //n=1,2时F(1)=F(2)=1
}
解决方案六:
public class Fibonacii {
public static int f(int i){
if (i==1||i==2)
return 1;
return f(i-2)+f(i-1);
}
public static void main(String[] args) {
for (int i=1;i<=20;i++){
System.out.print(f(i)+" ");
}
}
}
时间: 2024-10-26 06:46:49