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: ”,其中“:”后要加一个且只能一个空格。
输出数据之间有且仅有一个空格。
英文字母区分大小写。必须严格按样例输入输出。 展开
输入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: ”,其中“:”后要加一个且只能一个空格。
输出数据之间有且仅有一个空格。
英文字母区分大小写。必须严格按样例输入输出。 展开
3个回答
展开全部
#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上运行通过,输入输出样式符合要求,希望满意
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上运行通过,输入输出样式符合要求,希望满意
展开全部
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);
}
}
}
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);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询