费波纳切数列,更通用的音译是斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……

数学上的定义是F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)

根据数学定义,就可以编写生成该数列的代码,如下:#include

#define RANGE 30

static int fibonacci_values[RANGE];

void make_fibonacci_values(void)

{

int i;

fibonacci_values[0] = 0;

fibonacci_values[1] = 1;//赋值前两项

for(i = 2; i

fibonacci_values[i] = fibonacci_values[i-1] + fibonacci_values[i-2];//按照公式生成剩余项

}

int main()

{

int i;

make_fibonacci_values();//调用生成函数

for(i = 0; i

{

printf("F(%d)=%d\n", i, fibonacci_values[i]);

}

return 0;

}

这个代码的功能是生成斐波那契数列前30项。

用一个数组把每项的值保存下来,然后依次计算。

事实上,只需要知道前两个值,就可以知道下一个值,这样保存两个值就可以计算出第三个值了。于是求斐波那契数列第n项的函数也可以写作:#include

int fibonacci(int n)

{

int i;

int a,b,c;

if(n<0) return 0; //这其实是一种出错情况。

if(n == 0) return 0;

if(n == 1) return 1;//处理前两项的情况

a = 0;

b = 1;//对操作数赋初始值

for(i = 2; i <= n; i ++)//第一个计算结果其实是F(2),所以i的初始值用2

{

c = a+b;//这时的c即F(i)

a = b;

b = c;

}

return c;

}

int main()

{

int n;

scanf("%d",&n);//输入一个n

printf("F(%d) = %d\n", n, fibonacci(n));//输出数列第n项值

return 0;

}

同样,对于这类问题也可以用递归思想,使代码变得更简洁。#include

int fibonacci(int n)

{

if(n == 0) return 0;

if(n == 1) return 1;//处理前两项的情况

return fibonacci(n-1) + fibonacci(n-2);

}

int main()

{

int n;

scanf("%d",&n);//输入一个n

printf("F(%d) = %d\n", n, fibonacci(n));//输出数列第n项值

return 0;

}

以上是求斐波那契数列的三种常见的方式。值得注意的一点是,实际使用中要注意使用类型的范围,不要溢出。

比如在这几个程序中使用的是最简单的int类型,最大可以计算到F(46), 而F(47)已经超过了int所能表达的范围,会发生溢出。如果需要更大的值,那么就要改成使用更多字节的类型。比如long long等。

费波纳奇数c语言,费波纳切数列用C语言怎么编程相关推荐

  1. 费波纳奇数c语言,费波纳奇数列

    费波纳奇数列(Fibonacci Number Series) 该数列由十三世纪意大利数学家费波纳奇(Leonardo Fibonacci)发现.数列中的一系列数字常被人们称之为神奇数.奇异数. 具体 ...

  2. C语言斐波那切数列数列求和

    ** C语言斐波那契数列求和 ** 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0, ...

  3. 斐波那契数列算法c语言实现

    有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法.#include <stdio.h> int n,m,i,j; i ...

  4. c语言斐波那契数列_斐波那契数列之美

    美妙绝伦的基本算法 Image by Gerd Altmann on Pixabay 在研究和进行有关数据处理,计算相关计算机或数学运算的研究时,我们遇到了很多算法. 即使有时候我们不太喜欢数学,但我 ...

  5. 51 -算法 -斐波拉奇数列 -LeetCode 70 -递推

    // 斐波拉奇数列 // 递归 和 递推 static int count = 0; class Solution {public:int climbStairs(int n) {if(n == 1 ...

  6. 斐波那契数列求和——C语言(小白版)

    ** 斐波那契数列求和--C语言(小白版) ** 题目要求 斐波那契数列 1, 1, 2, 3, 5, 8, 13, 21, 34--不难发现当n>2时,an=an-1+an-2 要求:当屏幕输 ...

  7. C语言-递归法求斐波拉切数列

    目录 1 斐波拉契数列 1 斐波拉契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子 ...

  8. 阶乘 c语言 fushu,JS递归实现阶乘和菲波那切数列

    当我们需要使用递归来完成某些操作的时候,我们先要了解什么是递归 什么是递归? 递归,就是在运行的过程中调用自己. 一般来说,递归需要有边界条件.递归前进段和递归返回段. 当边界条件不满足时,递归前进: ...

  9. 单片机c语言小波阈值降噪,小波阈值去噪的基本原理_小波去噪阈值如何选取

    小波阈值去噪的基本原理 小波阈值去噪的基本思想是先设置一个临界阈值λ,若小波系数小于λ,认为该系数主要由噪声引起,去除这部分系数;若小波系数大于λ,则认为此系数主要是由信号引起,保留这部分系数,然后对 ...

  10. c语言斐波那契数列_数学之美系列图集——斐波那契数列

    斐波那契螺旋 抽象的技术背景上的数字黄金比例 鹦鹉螺壳数学螺旋带蓝色覆盖双色调 橙. 柠檬无限螺旋抽象背景.斐波那契 鹦鹉螺壳部分,白色完美的斐波那契模式 鹦鹉螺的壳和著名的斐波那契蓝色几何图案 斐波 ...

最新文章

  1. Android LK Bootlaoder启动概览
  2. Spring boot定制错误json数据
  3. Android Zygote分析
  4. makefile常见伪目标(.PHONY 不会去检查目标文件)
  5. php mysql int string_php从mysql取出int数据,变成了string
  6. mysql数据恢复时显示多线程恢复_MySQL多线程备份恢复工具mydumper,myloder
  7. Linux 字符设备驱动结构(二)—— 自动创建设备节点
  8. python o创建文件_Python 文件I/O
  9. C# 或Asp.Net 将excel表格导入数据库
  10. 创业,“玩”的就是心态
  11. github代码虚拟服务器,把github代码自动部署到服务器
  12. C语言——小型图书管理系统(课程设计)
  13. Producer向Broker发送心跳的作用-知识点
  14. leetcode题库1314-- 矩阵区域和
  15. c语言 sprintf_s 参数 通配符,Rust教程(翻译).doc
  16. Java开发工程师如何做好职业规划和成长路线
  17. LoadRunner教程(20)-LoadRunner 导出分析报告
  18. java程序员昵称_那些神秘的Java程序员
  19. xp iis访问元数据库失败
  20. 如何给学生选择好的台灯?分享国AA级照度的护眼台灯

热门文章

  1. oracle字符串转日期比较大小写,【varchar】oracle中比较日期大小日期定义的是varchar2类型的......
  2. 树算法系列之四:XGBoost
  3. 反转字符串的多种方式-经典面试题系列
  4. 高精度算法 万字详解(C++)
  5. 机器学习:监督学习、无监督学习、强化学习
  6. hdu1243----最长公共子序列
  7. android for 语句,Android中消息循环
  8. mysql 线程内存 回收_【MySQL】InnoDB后台线程与内存缓存池
  9. 微信android版6.3.27,微信6.3.27旧版本
  10. google海底光缆图_谷歌地图资讯-2013版“海底光缆地图”发布