c语言作业求助~~

来源:百度知道 编辑:UC知道 时间:2024/06/16 01:56:41
已知 斐波那契数列第n项的计算公式如下。在计算时有2种方法:递归和非递归。通过输出数列前40项,体会两种方法的差异。
0 n=o
fib(n){ 1 n=1
fib(n-1)+fib(n-2) n>1
麻烦尽量别有错 放在TC里直接能运行的。谢谢了。

非递归:
#include<stdio.h>
void main()
{
int s[50]={1,1};
int n,m;
printf("input a integer: ");
scanf("%d",&n);
for(int i=2;i<n;i++)
s[i]=s[i-1]+s[i-2];
for(int j=0;j<n;j++)
printf("%3d",s[j]);
}
递归:
int mu(int n)
{
int sum;
if(n>2)
sum=mu(n-1)+mu(n-2);
else
sum=1;
return sum;
}
void main()
{
int x;
printf("input a integer:");
scanf("%d",&x);
for(int i=1;i<x;i++)
printf("6%d",mu(i));
}

同学,好好学习啊,这看看书就会了的

非递归:用数组和不用数组都可以
递归:就是变化一下非递归就是了(不科学,个人理解)
但是要注意格式哦