二、 编写一个递归函数,计算并返回斐波那契数列中第n项的值,斐波那契数列定义如下:

2024-11-23 10:32:54
推荐回答(3个)
回答1:

#include

fib(int n)

{if(n==0)return(0);

else if(n==1)return(1);

else

return(fib(n-1)+fib(n-2));

}

main()

{int n,s;

scanf("%d",&n);

s=fib(n);

printf("%d\n",s);

}

扩展资料:

scanf用法:

输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&。

scanf("%s",s);改为scanf("%s",&s);

scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);

格式控制字符串包含:格式控制说明,普通字符。

1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)

2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\n"中的fahr=,celsius=。

3、输入的参数是变量的地址,所以要在变量前面加&。

回答2:

#include

int Fibonacci(int n)
{
if( n == 1 || n == 2) // 递归结束的条件,求前两项
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2); // 如果是求其它项,先要求出它前面两项,然后做和。
}

void main()
{
int n;

printf("please input n: ");
scanf("%d",&n);

printf("Result: %d\n",Fibonacci(n));

}

回答3:

#include
int F(int n);
using namespace std;

int main()
{
int num;
cout<<"please enter a non-negtive number: "< cin>>num;
int array[num];
cout<<"the fibonacci of "< for(int i=0;i<=num;i++)
{
array[i]=F(i);
cout<
}
system("PAUSE");
return 0;
}
int F(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
else
return F(n-1)+F(n-2);
}