2854 - 【设计型】第7章:函数 输出m~n之间的Fibonacci数
输入2个正整数m和n(m>=1,n<=10 000,m<=n),要求使用函数编程计算并输出m~n之间所有的Fibonacci数。
Fibonacci数列(第一项起):1,1,2,3,5,8,13,21,…。可以看出Fibonacci数列前面相邻两项之和,构成了后一项。
题目输入
2个数m、n。两数用空格隔开。
题目输出
输出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; }