C语言:采用递归调用函数方法计算Fibonacci数列的前20项
答案:4 悬赏:20 手机版
解决时间 2021-03-28 07:20
- 提问者网友:人傍凄凉立暮秋
- 2021-03-27 22:02
C语言:采用递归调用函数方法计算Fibonacci数列的前20项
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-03-27 22:29
使用递归进行操作时,关键是设置好递归条件。斐波那契数列的定义如下:
f2 = f0 + f1 = 0 + 1 = 1,所以条件可以设置成当n==1或者n==2时,返回1。其它项则依次递归调用即可。
#include
int f(int n){
if(n==1 || n==2)
return 1;
else
return (f(n-2)+f(n-1));
}
int main(){
const int num = 20;
int i;
for(i=1;i<=num;i++){
printf("%-6d",f(i));
if(i%5==0)
printf("
");
}
printf("
");
return 0;
}
f2 = f0 + f1 = 0 + 1 = 1,所以条件可以设置成当n==1或者n==2时,返回1。其它项则依次递归调用即可。
#include
int f(int n){
if(n==1 || n==2)
return 1;
else
return (f(n-2)+f(n-1));
}
int main(){
const int num = 20;
int i;
for(i=1;i<=num;i++){
printf("%-6d",f(i));
if(i%5==0)
printf("
");
}
printf("
");
return 0;
}
全部回答
- 1楼网友:梦中风几里
- 2021-03-28 00:20
#include
#define N 20
main(){
int f(int n);
int i;
for(i=1;i<=N;i++){
printf("%-6d",f(i));
if(i%5==0)
printf("\n");
}
printf("\n");
}
int f(int n){
if(n==1 || n==2)
return 1;
else
return (f(n-2)+f(n-1));
}
#define N 20
main(){
int f(int n);
int i;
for(i=1;i<=N;i++){
printf("%-6d",f(i));
if(i%5==0)
printf("\n");
}
printf("\n");
}
int f(int n){
if(n==1 || n==2)
return 1;
else
return (f(n-2)+f(n-1));
}
- 2楼网友:渡鹤影
- 2021-03-27 23:57
long fibonacci(int n)
{ long t;
if (n=2)
{ t=1;
return t;
}
if (n=1)
{ t=1;
return t;
}
t=fibonacci(n-1)+fibonacci(n-2);
return t;
}
1、没有调试;
2、主 函数 自己 写;
{ long t;
if (n=2)
{ t=1;
return t;
}
if (n=1)
{ t=1;
return t;
}
t=fibonacci(n-1)+fibonacci(n-2);
return t;
}
1、没有调试;
2、主 函数 自己 写;
- 3楼网友:拾荒鲤
- 2021-03-27 23:38
#include
#define N 20
main(){
int f(int n);
int i;
for(i=1;i<=N;i++){
printf("%-6d",f(i));
if(i%5==0)
printf("\n");
}
printf("\n");
}
int f(int n){
if(n==1 || n==2)
return 1;
else
return (f(n-2)+f(n-1));
}
#define N 20
main(){
int f(int n);
int i;
for(i=1;i<=N;i++){
printf("%-6d",f(i));
if(i%5==0)
printf("\n");
}
printf("\n");
}
int f(int n){
if(n==1 || n==2)
return 1;
else
return (f(n-2)+f(n-1));
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯