转载请注明出处,珍惜下劳动成果撒~~~

背景说明:

Fibonacci为1200年代的欧洲数学家,在他的著作中曾经提到:若有一只兔子每个月生一只小兔子,一个月后小兔子也开始生产,起初只有一只兔子,一个月后就有两只兔子,两个

月后就有3只兔子,三个月后就有五只兔子(小兔子开始投入生产)......

大天朝白话文:

找规律并求函数表达式:1,1,2,3,5,8,13,21,34,55,89......

解:

问题混合起来比较烦人,ok,分开看.每只兔子都按同一个规律走,出生ing(0个月),成长ing(1个月),生兔子ing(开始投入生产).把这一规律总结下,设为f(x).那么,当x为0和1的时候,可以列出如下表达式:

f(x) = x;   x = 0,1.这个表达式就表示一只兔子出生后的前两月,它所代表的兔子数量.那么在分析2个月以后的那些风花雪月的事.

第二个月,兔子数量是当前的兔子数量+生产的兔子数量.f(x-1)表示当前的兔子数量,在我们的表达式中,我们定义了0个月这个未出生的数量,那么一个兔子如果想要生产,至少要经过0,1这两个月,所以把f(x-2)作为生产的兔子数量.如果还不理解,这样看,假设第二个月,f(2),那么上个月的兔子数量就是f(1)即为1,生产的兔子数量就是f(0),即没有生产(2个月以前这只兔子还木有出生,还在出生ing中).f(3)表示第三个月的兔子数量,上个月的兔子数量f(2)刚才以求得是1,然后这个月这只兔子开始生产,即f(1) = 1,那么f(3)就是2.

总结归纳表达式:

{ f(x) = f(x-1)+f(x-2);  x > 1,x为正整数. f(x) = x ; x=0,1.}

尝试写代码:

先写f(x) = x的情况:

Fib[0] = 0;Fib[1] = 1;

然后写f(x) = f(x-1) + f(x-2);的情况:

Fib[i] = Fib[i-1] + Fib[i-2];

那么x的值是未知的,所以改造下:

for(i = 2;i < N ; i++)Fib[i] = Fib[i-1] + Fib[i-2];

然后加上main函数作为入口:

#include <stdio.h>
#include <stdlib.h>
#define N 20main(void)
{int i;int Fib[N] = {0};Fib[0] = 0;Fib[1] = 1;for(i = 2;i < N ; i++)Fib[i] = Fib[i-1] + Fib[i-2];for(i = 0 ; i<N ; i++)printf("第 %d 个月有 %d 只兔子\n",i,Fib[i]);printf("\n");system("pause");return 0;
}

查看运行结果:

完美执行~~!

从算法学起C语言--费氏数列相关推荐

  1. CC00033.bigdatajava——|Java方法封装.V15|——|Java.v15|费氏数列.v01|递归实现|

    一.费氏数列的递归实现 ### --- 案例题目~~~ --> 编程实现费式数列中第n项的数值并返回. ~~~ --> 费式数列:1 1 2 3 5 8 13 21 -- 二.递归分析 三 ...

  2. CC00034.bigdatajava——|Java方法封装.V16|——|Java.v16|费氏数列.v02|递推实现|

    一.费氏数列的递推实现 ### --- 案例题目~~~ --> 编程实现费式数列中第n项的数值并返回. ~~~ --> 费式数列:1 1 2 3 5 8 13 21 -- 二.递推实现原理 ...

  3. 算法--兔子生兔子的问题(费氏数列)

    #include <stdio.h> int Fib( int n ) {// 说明// Fibonacci 为 1200 年代的欧洲数学家 , 在他的着作中曾经提到 : 「若有一只免子每 ...

  4. Java算法:每对新生兔子第三个月期起生一对兔子(费氏数列)

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?    程序分析:   兔子的规律为数列1,1,2, ...

  5. 费氏搜寻法之算法分析与实现

    费氏搜寻法简介 费氏搜寻法,就是利用斐波那契数列从有序数列中搜寻特定元素的一种搜索算法. 二分搜寻法每次搜寻时,都会将搜寻区间分为一半,所以其搜寻时间为O(log(2)n),log(2)表示以2为底的 ...

  6. 费氏(Fibonacci)数列、最大公约数,最小公倍数

    费式数列 说明 Fibonacci为1200年代的欧洲数学家,在他的着作中曾经提到:「若有一只免子每个月生一只小免子,一个月后小免子也开始生产.起初只有一只免子,一个月后就有两只免子,二个月后有三只免 ...

  7. C实现 费氏查找算法

    问题引入 费氏数列即斐波那契数列. 斐波那契数列,又称黄金分割数列,数列形式为:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,98 ...

  8. 脚本编程语言python语言-python算的上脚本语言吗

    脚本语言泛指单用作简单編程任务如shell scripts.脚本语言是一种介乎于 HTML 和诸如 JAVA . Visual Basic . C++ 等编程语言之间的一种特殊的语言,尽管它更接近后者 ...

  9. 蒙特梭利 部首和偏旁 练习册(一)蒙氏语言蒙氏素材

    蒙特梭利 部首和偏旁 练习册(三)蒙氏语言蒙氏素材

  10. P1720 月落乌啼算钱(斐波那契数列)--python3实现

    https://www.luogu.com.cn/problem/P1720 """P1720 月落乌啼算钱(斐波那契数列) https://www.luogu.com. ...

最新文章

  1. python社会学科需要学些什么_学好Python能做什么
  2. 王者荣耀活动精选 Blink 第三弹来袭!
  3. 数据库死锁的解决办法
  4. libsvm 数据预处理 模块化程序
  5. 数学--数论--HDU 4675 GCD of Sequence(莫比乌斯反演+卢卡斯定理求组合数+乘法逆元+快速幂取模)
  6. word把选择答案弄到题目里_老师们看过来,如何快速整理试题答案
  7. 利用tushare进行对兴业银行股价的爬取,并使用numpy进行分析
  8. ul c语言,IMX6UL裸机实现C语言蜂鸣器实验
  9. 0基础学SQL-Task02 SQL基础查询与排序(共7节)
  10. 计算机课flash课件,flash课件在计算机教学过程中的应用
  11. AI(人工智能)园区顶层设计方案(ppt)
  12. oracle可恢复的等待,【案例】Oracle RAC恢复报错RMAN-06004 RMAN-20003解决办法笔记
  13. html中%3ch3%3e有颜色吗,typo.html
  14. s17王者服务器维护几点,王者荣耀S17赛季更新维护几点开始?王者荣耀四周年更新多久...
  15. JavaScript-- 基础知识面试题
  16. python怎么安装whl文件
  17. 英文排版(typography)
  18. Flink实战(九十三):数据倾斜(二)keyby 窗口数据倾斜的优化
  19. Origin C调用NAG库
  20. 诺基亚C5智能手机的功能非常好,并具有一定程度的可取性

热门文章

  1. python解析_第107天: Python 解析 PDF
  2. 如何用数据进行产品运营
  3. akuna capital oa
  4. 达梦8用户和角色管理
  5. 高德地图导航onInitNaviSuccess只调用一次
  6. Scratch小游戏《恐龙》
  7. invoke-obfuscation使用遇到的问题及Encoding免杀
  8. word文档 批量添加上标、下标
  9. 关于Google Chrome浏览器离线安装包下载方法
  10. 2022年证券大宗交易研究报告