习题6-4 使用函数输出指定范围内的Fibonacci数

简介: 本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。

本题要求实现一个计算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;
}
/* 你的代码将被嵌在这里 */


20210526131820254.png

int fib( int n ){
  int i=1,j=1,m=1,k;
  for(k=1;k<=n-2;k++){//递归是否可以(注意超时)
    m=i;
    i=m+j;
    j=m;
  }
  return i;
}
//注意时间是否超时
//格式是否错误
void PrintFN( int m, int n ){
  int i=1,fb,cut=0;
  while(fib(i)<m){i++;}
  if(fib(i)<=n){
    printf("%d",fib(i));cut++;}
  for(i++;fib(i)<=n;i++){
    fb=fib(i);
    if(fb<=n){
      printf(" %d",fb);
      cut++;
    }
  }
  if(cut== 0){
    printf("No Fibonacci number");
  }
}
目录
相关文章
|
8月前
|
机器学习/深度学习 C语言
函数递归与迭代附n的阶乘+顺序打印一个整数的每一位数+求第n个斐波那契数
函数递归与迭代附n的阶乘+顺序打印一个整数的每一位数+求第n个斐波那契数
61 0
|
8月前
|
人工智能
PTA-输出斐波那契数列的前n项
输出斐波那契数列的前n项
87 0
|
7月前
|
机器学习/深度学习 C语言
每日一数——使用函数求Fibonacci数
每日一数——使用函数求Fibonacci数
|
8月前
习题6-3 使用函数输出指定范围内的完数 (20分)
习题6-3 使用函数输出指定范围内的完数 (20分)
|
8月前
|
C++
【PTA】​ L1-009 N个数求和​ (C++)
【PTA】​ L1-009 N个数求和​ (C++)
262 0
【PTA】​ L1-009 N个数求和​ (C++)
wustojc5007输出Fibonacci数列的前n项
wustojc5007输出Fibonacci数列的前n项
53 0
|
C语言
C语言一个判断素数的函数fun,在主函数中计算1000以内所有素数的平均值并输出
C语言一个判断素数的函数fun,在主函数中计算1000以内所有素数的平均值并输出
175 0
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
164 0
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
打印出100-200之间素数及总个数(用math函数)
打印出100-200之间素数及总个数(用math函数)
125 0
打印出100-200之间素数及总个数(用math函数)
|
人工智能 C语言
C语言求100以内的偶数和、求十个数的乘积习题示例
C语言求100以内的偶数和、求十个数的乘积习题示例
434 0
C语言求100以内的偶数和、求十个数的乘积习题示例

热门文章

最新文章

下一篇
开通oss服务