6-1 使用函数输出指定范围内的Fibonacci数 (20 分)
这个题有点坑,不过看他的样例描述应该还是很好过的
完整的代码
下面是全代码
#include <stdio.h>
int fib( int n );
void PrintFN( int m, int n );
int main()
{
int m, n, t;
scanf("%d %d %d", &m, &n, &t);
printf("fib(%d) = %d\n", t, fib(t));
PrintFN(m, n);
return 0;
}
int fibna[30];
void f()
{
fibna[1]=fibna[2]=1;
for(int i=3;i<=22;i++)
fibna[i]=fibna[i-1]+fibna[i-2];
}
int fib( int n )
{
f();
return fibna[n];
}
void PrintFN( int m, int n )
{
int first=1;
for(int i=1;i<=22;i++)
{
if(fibna[i]>n)
break;
if(fibna[i]>=m)
{
if(first==1)
{
printf("%d",fibna[i]);
first=0;
continue;
}
else
printf(" %d",fibna[i]);
}
}
if(first==1)
printf("No Fibonacci number");
}
Just function
int fibna[30];
void f()
{
fibna[1]=fibna[2]=1;
for(int i=3;i<=22;i++)
fibna[i]=fibna[i-1]+fibna[i-2];
}
int fib( int n )
{
f();
return fibna[n];
}
void PrintFN( int m, int n )
{
int first=1;
for(int i=1;i<=22;i++)
{
if(fibna[i]>n)
break;
if(fibna[i]>=m)
{
if(first==1)
{
printf("%d",fibna[i]);
first=0;
continue;
}
else
printf(" %d",fibna[i]);
}
}
if(first==1)
printf("No Fibonacci number");
}