c语言程序兔子反之问题,C语言解决兔子产子问题代码及解析

有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?

问题分析

兔子数的规律,如下表所示:

月数

小兔子对数

中兔子对数

老兔子对数

兔子总数

1

1

0

0

1

2

0

1

0

1

3

1

0

1

2

4

1

1

1

3

5

2

1

2

5

6

3

2

3

8

7

5

3

5

13

提示:不满1个月的兔子为小兔子,满1个月不满2个月的为中兔子,满3个月以上的为老兔子。

可以看出,每个月的兔子总数依次为1, 1, 2, 3, 5, 8, 13…这就是Fibonacci数列。总结数列规律即从前两个月的兔子数可以推出第3个月的兔子数。

算法设计

该题是典型的迭代循环,即是一个不断用新值取代变量的旧值,然后由变量旧值递推出变量新值的过程。这种迭代与如下因素有关:初值、迭代公式、迭代次数。经过问题分析,算法可以描述为:

用C语言来描述迭代公式即为:

fib = fib1 + fib2

其中 fib 为当前新求出的兔子数,fib1为前一个月的兔子数,fib2 中存放的是前两个月的兔子数,然后为下一次迭代做准备,进行如下的赋值 fib2=fib1,fibl=fib,要注意赋值的次序,迭代次数由循环变量控制,表示所求的月数。

下面是完整的代码:

#include

int main()

{

long fib1=1, fib2=1, fib;

int i;

printf("%12ld%12ld", fib1, fib2); /*输出第一个月和第二个月的兔子数*/

for(i=3; i<=30; i++)

{

fib = fib1 + fib2; /*迭代求出当前月份的兔子数*/

printf("%12ld", fib); /*输出当前月份兔子数*/

if(i % 4 == 0)

printf("n"); /*每行输出4个*/

fib2 = fib1; /*为下一次迭代作准备,求出新的fib2*/

fib1 = fib; /*求出新的fib1*/

}

printf("n");

return 0;

}

运行结果:

1 1 2 3

5 8 13 21

34 55 89 144

233 377 610 987

1597 2584 4181 6765

10946 17711 28657 46368

75025 121393 196418 317811

514229 832040

fb5c1cdc67e3da5124b5902462a5b591.png

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-12/155896.htm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言fork()创建线程,操作系统的创建原语是fork()还是creat()?

满意答案MythSwift2013.09.10采纳率&#xff1a;55% 等级&#xff1a;12已帮助&#xff1a;9461人一个进程就相当于一个主线程。fork一个进程与create一个线程的区别:fork进程:子进程复制父进程的进程环境。父进程结束不会影响子进程的运行。进程切换复制进程环境。create线…

android 最新 support,android support v7 下载-android support.v7包 官方最新版 - 河东下载站...

android support v7是一款功能非常实用的android在进行开发的过程中&#xff0c;必须要进行使用的一个包&#xff1b;这款软件作为一个功能非常全面的功能包&#xff0c;也是目前为止最新的功能包&#xff0c;是您这使用Android开发的时候&#xff0c;非常重要的一环&#xff1…

android aar jar制作,AndroidStudio aar、jar生成及其引用

aar生成新建项目&#xff0c;并在项目中新建Library module&#xff1a;banner&#xff0c;如图&#xff1a;在新建Module中编写完代码后&#xff0c;build整个工程后就会自动生成aar包&#xff0c;包的路径在新建Module 》 build 》outputs >aar目录下&#xff1b;aar引用在…

android 点击侧滑代码,代码分析Android实现侧滑菜单

Android 侧滑菜单的实现&#xff0c;参考网上的代码&#xff0c;实现侧滑菜单。最重要的是这个动画类UgcAnimations&#xff0c;如何使用动画类来侧滑的封装FlipperLayout。1、实现效果2、动画类UgcAnimationspackage com.mmsx.base;import android.content.Context;import and…

html游戏怎么编辑器,HTML的编辑器使用

使用 Notepad 或 TextEdit 来编写 HTML可以使用专业的 HTML 编辑器来编辑 HTML&#xff1a;Adobe DreamweaverMicrosoft Expression WebCoffeeCup HTML Editor(推荐学习&#xff1a;HTML入门教程)不过&#xff0c;我们同时推荐使用文本编辑器来学习 HTML&#xff0c;比如 Notep…

鸿蒙系统hifi,Apple Music将迎来重大更新 HiFi无损音质即将上线?

原标题&#xff1a;Apple Music将迎来重大更新 HiFi无损音质即将上线&#xff1f;前不久有媒体报道称&#xff0c;苹果将在当地时间5月18日推出HiFi版AppleMusic服务&#xff0c;新服务将为Apple Music用户提供无损的流媒体音乐&#xff0c;满足HiFi用户对高音质的追求。而在近…

华为笔记本会不会用鸿蒙,华为MateBook Pro笔记本为什么不用鸿蒙操作系统HarmonyO?...

头条上整天就是各种华为啊鸿蒙啊的&#xff0c;搞得好像人人都见过鸿蒙一样。还是大家以为操作系统就是做个APP或者王者荣耀&#xff1f;据我所知&#xff0c;鸿蒙OS现在我们能看到的&#xff0c;也就是几张PPT截图吧&#xff1f;整天动不动&#xff0c;这个为啥不用鸿蒙&#…

html 复选框name值,HTML(5)表单元素以及对各个表单元素的name、value属性的理解

我在学习表单元素的时候感觉很混乱&#xff0c;特别是 name value这两个属性&#xff0c;没有真正理解它们是干什么的&#xff0c;所以需要梳理一下。HTML表单元素主要有 HTML5新增的表单元素有三个下面梳理一下这些表单元素的用法并指出各元素的name、value属性含义1. 元素元…

苹果6怎样打开html,苹果iPhone的Safari浏览器使用技巧图解

&#xfeff;  大多数的 iPhone 用户们都是用的 iOS 系统自带的 Safari 浏览器&#xff0c;不过很多用户们对 Safari 浏览器却不是很熟悉&#xff0c;因为 Safari 毕竟没有国产浏览器这么动我们&#xff01;这厢脚本之家小编给大家介绍一些 iOS Safari 浏览器的一些你所不知道…

华为p9 html尺寸,华为P9的屏幕尺寸是多少?

华为P9的屏幕尺寸是多少华为P9的屏幕尺寸是5.2英寸。针对华为P9的屏幕尺寸是多少的问题&#xff0c;配置方面&#xff0c;华为P9搭载了麒麟955处理器&#xff0c;麒麟955基于台积电16nm FinFET Plus制程工艺打造&#xff0c;比FinFET拥有更强的性能。架构方面&#xff0c;麒麟9…

html json to table,javascript - HTML - Convert json to table - Stack Overflow

Im trying to convert JSON to a table, but it doesnt. Everything seems fine, but I cannot see the values ​​in my table.My code that converts JSON to table:$(function() {var my_data ;$.each(JSON.parse(sonuc.response) , function(key, item){my_data ;my_dat…

北京科技大学计算机硕士,北京科技大学计算机专业硕士只有面授上课吗

北京科技大学计算机专业硕士比较热门&#xff0c;目前有意接受北京科技大学计算机专业硕士教育的学员&#xff0c;对其是否只有面授上课还比较疑惑。下文可供大家参考&#xff1a;一、只有面授上课北京科技大学计算机专业硕士只有面授上课&#xff0c;有周末班和集中班两种上课…

中国石油计算机文化基础答案,中国石油大学17年秋《计算机文化基础》第二次在线作业答案...

中国石油大学17年秋《计算机文化基础》第二次在线作业答案 (8页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;4.90 积分第二次在线作业窗体顶端单选题 (共40道题)1.(2.5分) Word不具有的功能是()。 …

联想服务器重装2008,联想ThinkSystem机器安装2008R2详细教程

联想ThinkSystem机器安装2008R2详细教程猫先生 • 2019 年 04 月 13 日自联想发布新品服务器以来&#xff0c;关于新品机器能否安装2008的声音此起彼伏尤其是阵列卡的驱动让众多尝试安装的人折了腰&#xff0c;现在我将整个安装过程做个详细的教程&#xff0c;希望能帮到各位工…

VM安装虚拟机及其破解密码

学习散记 一&#xff0c;简单的了解一下操作系统 1、操作系统是什么&#xff1f; 操作系统&#xff08;Operating System&#xff0c;简称OS&#xff09;是管理和控制计算机硬件与软件资源的计算机程序&#xff0c;是配置在计算机硬件上的第一层软件&#xff0c;任何其它软件都…

RHCSA第一天

1&#xff0c;VMware Workstation Pro 界面&#xff08;老铁们&#xff0c;下面就看图吧 1&#xff0c;2题如下 3&#xff0c;4题如下 5&#xff0c;6题如下 破解root密码精简版&#xff1a; 1、重启虚拟机 2、在linux16末尾加上 rd.break,ctrlx执行 3、mount -o remount,…

RHCSA第二天

第二次作业 1、使用思维导图工具画出linux的文件系统层级结构图&#xff08;其中要指出不同文件的文件类型且简要说明不同文件的作用&#xff09; 2、总结出vim的三个模式中你认为实用的命令 这款挺好用&#xff01; 第一题 第二题 Linux vi/vim 所有的 Unix Like 系统都会…

RHCSA第三天

1、在根下创建一个目录ceshi&#xff0c;在测试目录下创建一个user目录&#xff0c;将/etc/passwd和/etc/shadow文件复制到/ceshi/user目录中&#xff0c;给/ceshi//user/passwd文件创建一个硬链接文件为passwd.bak&#xff0c;给/ceshi/user/shadow文件创建一个软链接为sh.lin…

RHCSA第四天

废话不说&#xff0c;直接上&#xff01; 第一题 保存退出。 第二题 密码简单&#xff0c;需要输入两次方可成功。 第三题 第四题 第五题

MySQL学习(1)

简述MySQL体系结构 Mysql是由SQL接口&#xff0c;解析器&#xff0c;优化器&#xff0c;缓存&#xff0c;存储引擎组成的 Connectors指的是不同语言中与SQL的交互 Management Serveices & Utilities&#xff1a; 系统管理和控制工具 Connection Pool: 连接池。管理缓冲用户…