输入两个正整数mn,输出mn之间所有Fibonacci数

如题所述

#include<stdio.h>
#include<string.h>
#define N 2000 + 10

int F[N], mm, nn, i;

void init()
{
    F[0] = F[1] = 1;
    for (i = 2; i < 2000; i++) {
        F[i] = F[i - 1] + F[i - 2];
    }
}
int main()
{
    init();
    printf("输入m和n: ");
    while (~scanf("%d%d", &mm, &nn))
    {
        i = 0;
        printf("%d到%d之间的菲薄拉起数有: ", mm, nn);
        while (F[i] < mm) i++;
        while (F[i] <= nn) {
            printf("%d ", F[i]);
            i++;
        }
        printf("\n输入m和n: ");
    }

    return 0;
}

这两个正整数有范围吗?

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-22
#include <stdio.h>
int fib(int n) //递归求fib(n)
{
if (n <= 2 )
return 1;
else
return fib(n-1)+fib(n-2);
}

int main()
{
    int fn,i;
int m,n ;
printf("输入m和n: ");
scanf("%d %d", &m,&n );

for( i=1;;i++ )
{
fn=fib(i);
if ( fn > n )
{
printf("\n" );
break;
}
if ( fn >=m )
printf("%d ", fn );
}

    return 0;
}

本回答被网友采纳