C语言题目求解

【问题描述】输入2个正整数m和n(m≥1,n≤10000),输出m~n之间所有的Fibonacci数。Fibonacci数列(第一项起):1,1,2,3,5... 【问题描述】
输入2个正整数m和n(m≥1,n≤10 000),输出m ~n 之间所有的Fibonacci数。Fibonacci数列(第一项起):1,1,2,3,5,8,13,21,…。要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci 数。例如,fib(7)的返回值是13。
【输入形式】
从键盘输入2个整数m和n。
【输出形式】
输出m ~n之间所有的Fibonacci 数。
【样例输入1】(下划线部分为键盘输入,其余部分为程序输出)
Input m: 20
Input n: 100
【样例输出1】
21 34 55 89
【样例输入2】(下划线部分为键盘输入,其余部分为程序输出)
Input m: 50
Input n: 300
【样例输出2】
55 89 144 233
【样例说明】
输入提示符后要加一个空格。例如“Input integers: ”,其中“:”后要加一个且只能一个空格。
输出数据之间有且仅有一个空格。
英文字母区分大小写。必须严格按样例输入输出。
展开
 我来答
mushao999
2012-05-06 · TA获得超过279个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:90.7万
展开全部
#include "stdio.h"
int fib(int num);
main()
{
int m,n,i,k;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
for(i=1;fib(i)<n;i++)
{
if(fib(i)>m)
{
printf("%d ",fib(i));
}
}
}

fib(int num)
{
int a=1,b=2,c,j;
if(num==1)
{
return 1;
}
if(num==2)
{
return 2;
}
else
{
for(j=2;j<=num;j++)
{
a+=b;
c=a;
a=b;
b=c;
}
return b;
}
}
在vc上运行通过,输入输出样式符合要求,希望满意
百度网友d580670
2012-05-06 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:690万
展开全部
int fib(int c){
int m=2,a=1,b=1;
while(m++<c){
b=a+b;a=b-a;
}
return b:
}

void main(){
int m,n;
int a=1,b=1;
printf("Input m:");scanf("%d",&m);
printf("\nInput n:");scanf("%d",&n);
if(n>m &&m>0&&n<10001){
while((b=fib(a++))<=n){
if(b>=m)printf("%d ",b);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cf71d58
2012-05-06 · 超过10用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:27.4万
展开全部
#include <stdio.h>
int main()
{
int fib(int temp);
int m,n;//m>=1,n<=1000
printf("Input m(m>=1): ");
scanf("%d",&m);
printf("Input n(n<=1000): ");
scanf("%d",&n);
for(int i=0; ;i++)
{
int temp;
temp=fib(i);
if (temp>=m&&temp<=n)
printf("%d ",temp);
if (temp>n)
break;
}
return 0;
}
int fib(int temp)
{
if (1==temp||2==temp)
return 1;
int num;
num=fib(temp-1)+fib(temp-2);
return num;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式