C语言的另一个问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 14:54:59
输入两个正整数m和n(m=>1, n<=10000),输出m~n之间所有的Fibonacci数。Fibonacci序列(第一项起):1 1 2 3 5 8 13 21···。要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如:fib(7)的返回值是13

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int fib(int n)
{
int i,j;
int a[25],b[25];
a[1]=a[2]=1;
for(i=3;i<25;i++)
a[i]=a[i-1]+a[i-2];
return (a[n]);
}
int main()
{
int i,j=0;
for(i=1;i<=22;i++)
{
if(fib(i)<=10000)
{
printf("%d ",fib(i));
if(j=4){printf("\n");}
j++;
}
}
system("pause");

}

#include <stdio.h>
int fib(int i)
{
long a=0;
long b=1;
long temp=0;
for(int x=0;x<i;x++) //不使用递归,提高速度
{
temp=a;
a=a+b;
b=temp;
}
return a;
}
main()
{
long m,