首页 > 其他分享 >实验6-9 使用函数输出指定范围内的Fibonacci数

实验6-9 使用函数输出指定范围内的Fibonacci数

时间:2024-08-05 20:28:27浏览次数:8  
标签:输出 函数 int fib ++ Fibonacci printf PrintFN

本题要求实现一个计算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”。
输入样例1:

20 100 7

输出样例1:

fib(7) = 13
21 34 55 89

输入样例2:

2000 2500 8

输出样例2:

fib(8) = 21
No Fibonacci number

程序:

#define _CRT_SECURE_NO_WARNINGS 1
#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 = 1, j = 1, k = 0, temp = 0;
    if (n == 1 || n == 2)return 1;
    while (k < n - 2)
    {
        temp = j;
        j = i + j;
        i = temp;
        k++;
    }
    return j;
}
void PrintFN(int m, int n)
{
    int i = 0, j = 0, k,flag=0;
    while (fib(i) < m)i++;
    while (fib(j) < n)j++;
    for (k = i; k < j; k++)//k不能等于j,因为此时第j项已经大于n了
    {
        if (k == i)
        {
            flag = 1;
            printf("%d", fib(k));
            continue;
        }
        printf(" %d", fib(k));
    }
    if(flag==0)
    {
        printf("No Fibonacci number");
    }
}

标签:输出,函数,int,fib,++,Fibonacci,printf,PrintFN
From: https://blog.csdn.net/weixin_52249641/article/details/140936047

相关文章

  • 2-2 字符串的基本操作函数及注意事项(超详细)
    目录字符串操作函数分类1.字符串长度和复制2.字符串连接3.字符串比较4.字符串查找5.字符串转换6.字符串复制和移动7.字符串填充和比较字符串操作函数使用1.strlen函数2.strcpy函数3.strcat函数4.strcmp函数5.strncpy函数6.strncat函数7.s......
  • [AHK2] 配置文件新语法——函数
    开始今天,我在使用自定义的配置文件语法时又发现了不足,那就是需要一种插值语法,可以减少很多重复。比如,我有很多个字段都是http网址:vm:http://192.168.6.100:8080rm:http://192.168.6.101:9000能不能不打这么多?答案是可以的,所以我设计了新语法————函数。它类似ahk的......
  • 7.31今日还是函数
    1.使用指针实现一维数组的传参,写一个冒泡排序的函数voidsort_(int*p,intlen) #include<stdio.h>#include<string.h>voidsort_(int*p,intlen){ intm; for(inti=0;i<len;i++) { for(intj=0;j<len-1;j++) { if(*(p+j)>*(p+j+1)) { ......
  • C语言 随机函数
    随机函数随机函数是一个使用内部链接的静态变量的函数;ANSIC库提供了rand()函数生成随机数。在C语言中rand()生成的随机数,并不是真正意义上的随机数,而是一个伪随机数;实际上,rand()是“伪随机数生成器”,意思是可预测生成数字的实际序列,且数字在其取值范围内均匀分布......
  • 【Python】Python中的输入与输出——内附Leetcode【151.反转字符串中的单词】的C语言
    输入与输出导读一、Python中的输出1.1基本用法1.2格式化输出1.3通过`:`格式化值的输出1.4其它格式化输出二、Python中的输入2.1基本用法2.2`split()`方法2.3split()习题演练结语导读大家好,很高兴又和大家见面啦!!!在上一篇内容中我们介绍了Python中的数据类......
  • Python函数
    函数定义函数需要用def关键字实现,具体的语法格式如下:def函数名(形参列表)://由零条到多条可执行语句组成的代码块[return[返回值]]其中,用[]括起来的为可选择部分,即可以使用,也可以省略。此格式中,各部分参数的含义如下:函数名:从语法角度来看,函数名只要是一个合法......
  • 【Python&GIS】Arcpy中常用出图函数详解
        出图是每个GISer都要经历的事,但有时候会有许多重复且多且无聊的出图任务,这个时候我们肯定想能不能自动化出图。ArcGIS中的模型创建就可以实现,但是我的数据大部分是在Python中处理的,所以就想能不能使用Python进行批量出图,正好今天跟大家分享一下。这里使用的mxd作为......
  • Mysql的length函数,char_length函数与字符,字节的区别
    在存储中,1个英文单词或1个英文字符为1个1字节,1个中文或1个中文字符为3个字节 在Mysql5.0之前,VARCHAR(20)中的20表示20个字节,英文可以存储20个,但中文只能存储6个 在Mysql5.0之后,varchar(20)中的20表示20个字符,不管中文还是英文都可以存储20个 length()函数是查找字节数,CHAR_LENG......
  • C 和 Python 代码的函数的不同十六进制转储值
    这是我的示例C代码,用于从user32.dll中转储MessageBoxA:#include<windows.h>#include<stdio.h>voidDumpFun(HANDLEprocess,LPVOIDaddress,SIZE_Tdump_size){BYTE*buffer=(BYTE*)malloc(dump_size);if(buffer==NULL){pri......
  • 是否有对数累积分布函数 (CDF) 和分位数函数的数值稳定的 Python 实现?
    我正在寻找以下函数的数值稳定实现。由于我的应用涉及t分布,所以我这里以t分布为例。LogCDF#NaivePythonimplementationofthefunctionIneedimportscipyimportnumpyasnpdeft_log_cdf(x,df):p=scipy.stats.t.cdf(x,df=df)returnnp.log(......