标题:使用函数输出指定范围内的Fibonacci数 求大佬帮我改一下 输出答案都对就是格 ...
取消只看楼主
parthenope
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-12-12
结帖率:0
已结贴  问题点数:20 回复次数:3 
使用函数输出指定范围内的Fibonacci数 求大佬帮我改一下 输出答案都对就是格式不正确
本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。
函数接口定义:int fib( int n );
       void PrintFN( int m, int n );
其中函数fib须返回第n项Fibonacci数;函数PrintFN要在一行中输出给定范围[m, n]内的所有Fibonacci数,相邻数字间有一个空格,行末不得有多余空格。如果给定区间内没有Fibonacci数,则输出一行“No Fibonacci number”。



#include <stdio.h>

int fib( int n );
void PrintFN( int m, int n );
 
int main()
{
    int m, n, t;

    scanf("%d %d %d", &m, &n, &t);
    printf("fib(%d) = %d\n", t, fib(t));
    PrintFN(m, n);

    return 0;
}

/* 你的代码将被嵌在这里 */





int fib( int n )
{
  int i,x1=1,x2=1,x;
  if(n==1||n==2)
      return 1;
  for(i=3;i<=n;i++){
    x=x1+x2;
    x1=x2;
    x2=x;
  }
  return x;
}
void PrintFN( int m, int n )
{
    int j,a=0;
    for(j=1;j<=n;j++){
        if(fib(j)>=m&&fib(j)<=n){
            printf("%d ",fib(j));
            a++;
        }
    }
    if(a==0)
            printf("No Fibonacci number");
}


输出最后一个数的时候怎么把空格去掉QAQ

搜索更多相关主题的帖子: 函数 输出 范围 Fibonacci int 
2017-12-12 11:26
parthenope
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-12-12
得分:0 
那个空格怎么去QAQ
2017-12-12 11:30
parthenope
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-12-12
得分:0 
回复 4楼 rjsp
void PrintFN( int m, int n )
{
    int i=0, v;
    for( ; v=fib(i),v<m; ++i );
    if( v > n )
    {
        printf( "%s", "No Fibonacci number" );
        return;
    }

    printf( "%d", v );
    for( ++i; v=fib(i),v<=n; ++i )
        printf( " %d", v );
}
这一段看不太懂 可以麻烦大佬解释下吗!!
2017-12-12 12:44
parthenope
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-12-12
得分:0 
回复 6楼 九转星河
谢谢大佬 但我还没学数组不知道什么是打表。。。。
2017-12-13 10:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-483319-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.134942 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved