2854 - 【设计型】第7章:函数 输出m~n之间的Fibonacci数

输入2个正整数mnm>=1,n<=10 000m<=n),要求使用函数编程计算并输出m~n之间所有的Fibonacci数。

Fibonacci数列(第一项起):1,1,2,3,5,8,13,21,…。可以看出Fibonacci数列前面相邻两项之和,构成了后一项。

题目输入

2个数mn。两数用空格隔开。

题目输出

输出m~n之间所有的Fibonacci数。数据用空格隔开。

输入/输出样例

题目输入

4 30

题目输出

5 8 13 21 

C语言解答

#include<stdio.h>
#define N 1000
long int main()
{
	long int a[N];
	long int i,min,max,j;
	a[0] = 1;
	a[1] = 2;
	for ( i=2 ;a[i-1]<10000;i++)
		a[i] = a[i-1]+a[i-2];
	scanf("%d %d",&min,&max);
	for ( j=0 ;a[j]<=max;j++)
	{
		if (a[j]>=min)
			printf("%d ",a[j]);
	}
	return 0;
}

C++解答

#include <iostream>
using namespace std;
int fib(int n);  
int main()
{  
    int m,n,i; 
    cin>>m; 
    cin>>n; 
    i=1;  
    while(fib(i)<m) //通过循环找出大于等于m的第一个Fibonacci数 
    {
    	i++;  
    }
    while(fib(i)<=n) //通过循环将大于等于m,并且小于等于n的Fibonacci数输出出来 
    {   
        cout<<fib(i)<<" "; 
        i++;  
    }
    return 0;
}  
int fib(int n)
{
    int n1=1,n2=1,i,temp;  
    if((n==1)||(n==2))  
         return 1;  
    for(i=3;i<=n;i++) 
    { 
        temp=n1+n2; 
        n1=n2;  
        n2=temp;
    } 
    return n2;
} 

时间限制 1 秒
内存限制 2 MB
讨论 统计
上一题 下一题