C语言斐波那契数列

article/2025/10/20 19:05:21

         斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……。在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1, F(2)=1, F(n)=F(n - 1)+F(n - 2)(≥3,∈ N*),我们用C语言来实现它: 

最不适用于用递归函数的经典题目:斐波那契数列

第一种 递归法:斐波那契数列的规律为:Fibon(n) = Fibon(n-1) + Fibon(n-2)  

 我们先看一个求位数少的(代码1),这个很快就算出来了。再看一个位数多的(代码2)

代码1:

#include<stdio.h>
int Fibon(int n)
{if (n == 1|| n == 2){return 1;}else{return Fibon(n-1)+ Fibon(n-2);}
}
int main()
{for (int i = 1; i <= 10; i++){printf("%d ", Fibon(i));}return 0;
}

调试结果:

代码2:

#include<stdio.h>
int Fibon(int n)
{if (n == 1|| n == 2){return 1;}else{return Fibon(n-1)+ Fibon(n-2);}
}
int main()
{for (int i = 1; i <= 40; i++){printf("%d ", Fibon(i));}return 0;
}

调试结果如下:

此时的结果就出的很慢,原因是什么?因为它超出堆栈的默认1MB的大小所以就结果出的很慢。

对于斐波那契数列我们最好还是使用for循环来写。

第二种 for 循环:(简单高效)

#include<stdio.h>
int Fibon1(int n)
{int f1 = 1;//1//2int f2 = 1;//2//3int f3 = 1;//2//3for(int i=2; i<n; i++){f3 = f1+f2;f1 = f2;f2 = f3;}return f3;
}
int main()
{for (int i = 1; i <= 10; i++){printf("%d ", Fibon1(i));}return 0;
}

调试结果如下:只要求的斐波那契数超过40,for循环都可一瞬,而递归的方法就会慢很多。


http://chatgpt.dhexx.cn/article/c9ew3RE0.shtml

相关文章

斐波那契数列【C语言实现】

1. 定义&#xff1a; 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样…

【C语言】斐波那契数列

一.斐波那契数列是什么&#xff1f; 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xf…

用C 语言实现斐波那契数列

斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称“黄金分割”数列&#xff0c;比如这样一个数列&#xff1a;1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13&#xff0c;21&#xff0c;34&#xff0c;55&#xf…

免费且好玩的API接口

其实很多小伙伴都在寻找一些免费的好用的API接口&#xff0c;下面就来介绍一些好用的并且稳定的API接口吧。 1.聚合数据 聚合数据网站提供的接口可以说是非常的多&#xff0c;并且很多都是免费使用&#xff0c;虽然有次数的限制&#xff0c;但是用来进行简单的测试或者日常使…

分享笔趣阁、宜搜等小说免费API接口

背景 因为有一些js基础&#xff0c;开始是想学python的爬虫的&#xff0c;后来觉得python爬虫没用。因为我是想用爬虫去爬一些api接口的。爬虫真的太low了……有点鸡肋&#xff08;勿喷&#xff09; 然后为了爬api接口&#xff0c;我就去学抓包&#xff0c;2天速成&#xff0…

几个免费API接口分享,调用完全不限次数...

点击上方蓝色“终端研发部”&#xff0c;选择“设为星标” 学最好的别人&#xff0c;做最好的我们作者 : ishxiao 来源&#xff1a;blog.csdn.net/ishxiao/article/details/53839061 各类无次数限制的免费API接口整理&#xff0c;主要是聚合数据上和API Store上的一些&#xff…

快速拥有自己的网易云免费API接口

操作简单&#xff0c;快速拥有自己的网易云api接口。 https://binaryify.github.io/NeteaseCloudMusicApi/#/?id%e6%ad%8c%e6%89%8b%e7%83%ad%e9%97%a850%e9%a6%96%e6%ad%8c%e6%9b%b2 此链接为网易云开发接口文档&#xff0c;拥有自己的api后就可以结合它进行令人兴奋的操作…

超百个免费api接口,分享给你

API&#xff08;应用程序编程接口&#xff09; API&#xff08;Application Programming Interface&#xff0c;应用程序接口&#xff09;是一些预先定义的函数&#xff0c;或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程…

50多个免费 API 接口分享

1 背景 此前时不时会有一些研发小伙伴和我诉苦&#xff0c;说很多企业由于人力财力限制或者需求不强&#xff0c;会直接购买使用第三方的开放API&#xff0c;这样一来&#xff1a; 一则由于开放项目不是量身定制的&#xff0c;寻找自己合适的接口也要搜索调研蛮多时间。二则这种…

超全开放 API 免费调用,这款 API 管理工具太香了!

01 此前时不时会有一些研发小伙伴和我诉苦&#xff0c;说很多企业由于人力财力限制或者需求不强&#xff0c;会直接购买使用第三方的开放API&#xff0c;这样一来&#xff0c; 一则由于开放项目不是量身定制的&#xff0c;寻找自己合适的接口也要搜索调研蛮多时间。 二则这种合…

免费实用的API接口

本文分为两个部分&#xff0c;第一部分是平台的接口汇总&#xff0c;第二部分是非常实用的单个的接口汇总。 第一部分 1、聚合数据&#xff08;API数据接口_开发者数据定制&#xff09; 2、百度API Store(API集市_APIStore) 3、webxml&#xff08;确实不错&#xff09;WebXml…

整理一些完全免费开放的API接口

前言 在开发测试阶段&#xff0c;或者是在写Demo的时候&#xff0c;难免会用到一些测试数据&#xff0c;有时苦于没有可用的接口&#xff0c;需要自己动手去写&#xff0c;但是这样大大降低了效率&#xff0c;前期我也找了一些开放的接口&#xff0c;这篇文章整理一下&#xff…

一些真正免费的API接口

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 文章目录 1. JSONPlaceholder2. Fake Store API3. Unsplash API4. Quotes API5. RandomUser6. Coingecko API 集成服务有助于提高开发人员的开发性能并节省大量时间…

java mfcc_MFCC特征提取过程详解

一、MFCC概述 在语音识别(Speech Recognition)和话者识别(Speaker Recognition)方面&#xff0c;最常用到的语音特征就是梅尔倒谱系数(Mel-scale Frequency Cepstral Coefficients&#xff0c;简称MFCC)。根据人耳听觉机理的研究发现&#xff0c;人耳对不同频率的声波有不同的听…

tensorflow 2 实现 mfcc 获取

原创: Lebhoryirt-thread.com时间: 2020/05/11结合 tf2 官网mfcc例程阅读本篇文档食用更佳rfft 部分没有吃透&#xff0c;未来待补Update: 新增tensorflow2 调用tf1的API 实现mfcc提取&#xff1b;Update: 新增全文代码下载链接Date: 2020/07/27 文章目录 0x00 前言概述0x01 读…

语音识别MFCC系列(四)——MFCC特征参数提取

最好先看下下面三篇&#xff08;其中系统的讲述了离散傅里叶变换&#xff0c;能量密度谱为什么是DFT系数的平方除以总点数&#xff0c;为什么512点的离散傅里叶变换只选前257个分量&#xff0c;离散余弦变换&#xff0c;为什么采样频率要大于真实信号最大频率的两倍&#xff0c…

MFCC 特征提取

HTK以及My_htk数据链接&#xff1a; https://pan.baidu.com/s/1Ajo7d-odrRiAwmCB_CQTzQ 提取码&#xff1a;hqnv 一&#xff1a;文件准备 HTK 和 HTK–samples 下载 HTK 和 HTK–samples 两个压缩文件&#xff0c;保存至 F 盘根目录下。 下载地址&#xff1a;http://htk.eng.…

MFCC概述

在进行端点处理之后&#xff0c;就可以得到需要处理的信号。但是要进行语音识别就必须进行一个处理&#xff1a;特征提取。进行特征提取我们这里采用的就是FMCC。 具体的流程是怎么样的呢&#xff1f; 那就是&#xff1a; 概述: MFCC&#xff1a;Mel频率倒谱系数的缩写。Mel频…

matlab实现MFCC

MFCC MFCC&#xff08;Mel-frequency cepstral coefficients&#xff09;&#xff1a;梅尔频率倒谱系数。 梅尔频率是基于人耳听觉特性提出来的&#xff0c; 它与Hz频率成非线性对应关系。 MFCC提取过程&#xff1a; 首先对语音进行预处理。 预处理又包括对语音进行预加重、分…

理解MFCC

文章目录 提取音频的整体步骤预加重分帧加窗FFT(快速傅里叶变换)声谱图&#xff08;Spectrogram&#xff09;梅尔频谱和梅尔倒谱 倒谱&#xff08;cepstrum&#xff09;就是一种信号的傅里叶变换经对数运算后再进行傅里叶反变换得到的谱记住一句话&#xff0c;在梅尔频谱上做倒…