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

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

fib(1)=1,fib(2)=1

Fib(n)= Fib(n-1)+Fib(n-2)

#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、输入的参数是变量的地址,所以要在变量前面加&。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
#include <stdio.h>

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));

}追问

编写程序, 从键盘输入一个整数N(N<=10),然后计算并输出 S=1+21+22+…+2|N| 是次方
帮帮忙 急!!

本回答被提问者采纳
第2个回答  2012-06-04
#include<iostream>
int F(int n);
using namespace std;

int main()
{
int num;
cout<<"please enter a non-negtive number: "<<endl;
cin>>num;
int array[num];
cout<<"the fibonacci of "<<num<<" is: "<<endl;
for(int i=0;i<=num;i++)
{
array[i]=F(i);
cout<<array[i]<<" ";

}
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);
}