每日程序C语言

题目

古典问题,有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后又生一对兔子,假如兔子都不死,问每个月的兔子总数是多少?

算法分析

兔子的对数符合斐波那契数列

斐波那契数列

(Fibonacci sequence),又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)。就是前两个数的和等于第三个数的值。

兔子繁殖树状图https://stage.geogebra.org/m/xyut7cwm

非递归方式

int fun(int n){int n1,n2;n1=n2=1;for(int i=1;i<=n;i++){printf("%d\t",n1);printf("%d\t",n2);n1=n1+n2;n2=n1+n2;}return 0;
}

递归方式

int fun(int n){if(n==1 || n=2){return 1;}else{return fun(n-1)+fun(n-2);}
}

数组方式

int fun(){int a[20]={0};a[0]=a[1]=1;for(int i=2;i<20;i++){a[i]=a[i-1]+a[i-2];}for(int i=0;i<20;i++){return a[i];}return 0;
}

今日巩固

  1. 对斐波那契数列有了更深刻的理解,在生活中,很多事物的产生不是对称的,而是像斐波那契数列这样的规律
  2. 递归有时候运算起来效率不是很高,可以结合数组的形式来优化算法

每日程序C语言5-斐波那契兔子数相关推荐

  1. c语言输出斐波那契程序,C语言打印斐波那契数列

    C语言打印斐波那契数列,具体的个数由用户输入. 我们知道斐波那契数列的规律是从第三个数开始,它数值是前2个的合计. 实现的代码如下: #include #include int main() { in ...

  2. c语言n次方怎么输入_C语言实现斐波拉契数列

    C语言实现斐波拉契数列教程 怎么使用 C 语言实现计算斐波拉契数列的第 N 项的值? C语言实现斐波拉契数列详解 背景知识 斐波那契数列是一组第一位和第二位为 1,从第三位开始,后一位是前两位和的一组 ...

  3. C语言 计算斐波那契数列

    C语言 计算斐波那契数列 前言 在学习C语言的道路上多次遇到了求斐波那契数列的问题,今天来总结一下我所知道的几种思想方法. 方法一:循环 使用斐波那契数列的推导式,通过循环将每一个值保存到数组fib中 ...

  4. 用C语言实现斐波那契数

    如何用C语言实现斐波那契数 首先要理解以下斐波那契数的概念 斐波那契数列指的是这样一个数列" 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 23 ...

  5. python斐波那契数列前20项_Python每日一练之实现斐波那契数列

    概述 今天主要分享下怎么用Python实现斐波那契数列,大家有空可以玩一下~ 需求 用Python脚本实现斐波那契数列. 思路 斐波那契数列,也称兔子数列,是指1,1,2,3,5,8,13,21,34 ...

  6. 信息学奥赛C++语言:斐波那契第n项

    [题目描述] 输入n,编写程序输出斐波那契数列的第n项.其中斐波那契数列f(n)的定义如下: f(1)=0,f(2)=1 f(n)=f(n-1)+f(n-2)(n>=2) [输入] 一行一个正整 ...

  7. 用C语言求斐波那契数1,1,2,3,5,8......

    斐波那契数规律:第三个数等于前两个数之和 分别设为a,b,c,则 当n<=2时,c=1; 当n>2时,c=a+b 运用循环求,n--是防止程序进入死循环,当n>2时,每循环一次减一, ...

  8. C语言实现斐波那契数列。

    #斐波那契数列,指的是这样一个数列:1.1.2.3.5.8.13.--它有如下特点:第一,第二项为 1,从第三项开始,每一项为前两项数之和,即: F1 = 1 (n = 1) F2 = 1 (n =2 ...

  9. c语言输出斐波那契数列前20项,在c语言中,如何利用数组求斐波那契数列的前20项?...

    在c语言中,以vc为例利用数组求斐波那契数列的前20项的具体步骤如下: 1.首先,打开vc: 2.点击文件.新建: 3.选择win32 console application 并在右侧输入工程的名字和 ...

最新文章

  1. 第十节:利用async和await简化异步编程模式的几种写法
  2. 《spring-boot学习》-10-RabbitMQ
  3. The Number of Products
  4. 下载vc_redist运行库
  5. windows注册表文件损坏了,导致windows无法启动,解决办法!
  6. 学习Globle和window对象学习心得+jquery中的$(#id)与document.getElementById(id)的区别+成功激活win10的方法
  7. html弹出对话框 自动点击,c#如何自动点击网页弹出的对话框的确认键
  8. java无法下载jnlp_无法加载jnlp文件
  9. 北京市基本医疗保险A类定点医疗机构名单(2010-09-29)
  10. Python小技巧:将大音频文件无损切割为小音频文件
  11. git 指令操作虚拟机操作
  12. C/C++程序员求职面试指导
  13. 如何把录音转换成文字?这几个方法可以轻松解决录音转文字
  14. HBuilder下载
  15. 欢迎下载psp的埃舍尔画集主题
  16. 国家电网公司推进信息化工程综述
  17. auto hot key常用命令
  18. java编程猜拳游戏_Java开发实现猜拳游戏
  19. 在OpenCV里实现负片函数imcomplement
  20. 新东方 词根词缀 excel_干货 | 14张图拓展记忆高中英语所有词缀和词根!全弄懂单词更好背!...

热门文章

  1. 10.21 crond定时任务练习
  2. docker的安全管理与TLS/LLS加密通信
  3. Linux 查询 OS、CPU、内存、硬盘信息
  4. .net连接mysql数据_.net连接MYSQL数据库 转载
  5. write up 杂项:啊哒
  6. 云效走进百所高校 让上千学生真正认识代码
  7. 蚂蚁御术:我的前端十年成长之路
  8. AI小编问世!阿里智能写手核心技术首次公开!
  9. 今日分享:vue3多层嵌套组件如何访问到最外层组件的数据?
  10. 美术的故事 —— 那些用技术创造艺术的游戏开发者