有一对兔子,从出生后的第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

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

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

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

  1. 培训c语言程序,编程人员培训手册C语言程序设计基础

    <编程人员培训手册C语言程序设计基础>由会员分享,可在线阅读,更多相关<编程人员培训手册C语言程序设计基础(18页珍藏版)>请在人人文库网上搜索. 1.第2章:C语言程序设计基 ...

  2. 培训c语言程序,编程人员培训手册C语言程序设计基础.PPT

    编程人员培训手册C语言程序设计基础.PPT 第2章C语言程序设计基础,学习的意义,从本章开始我们正式进入C语言程序设计的学习,也许大家会问为什么我们要学习C语言呢 理由1因为C语言流行. 理由2因为C ...

  3. c语言程序第一章编程,c语言程序的设计第一章 C语言编程入门.ppt

    c语言程序的设计第一章 C语言编程入门 第1章 C语言编程入门 本章是本书的入门篇,专为初学者熟悉编程过程.掌握程序结构而准备的. 本章学习目标 ? 1)? 能够通过模仿与改变来构造带有测试函数的C语 ...

  4. c语言程序的书写格式,C语言程序书写格式辅导

    C语言程序书写格式辅导 C语言具有语句简洁的特点,C语言程序的可读性比较差.因此,为了增强C语言的可读性,正确的书写格式就显得十分重要.同样一个程序采用不同的书写方法.尽管都可以得到相同的结果,有的书 ...

  5. c语言程序头文件作用,C语言头文件

    C语言头文件教程 C 语言的头文件一般都是 .h 做为结尾的. C语言头文件详解 语法 #include 参数 参数 描述 filename 我们需要引入的头文件的名称. 说明 C 语言的头文件一般都 ...

  6. c语言程序可以单独编译,c语言中的函数可不可以单独进行编译?_后端开发

    在C语言中,要求参加运算的数必须是整数的运算符是什么_后端开发 在C语言中要求参加运算的数必须是整数的运算符是"%":"%"符号在c语言中有两种释义,一是求余符 ...

  7. 更改c语言程序保存地址吗,C语言文本文件实现局部修改

    前言:以往进行文件操作时,都是以链表(变量)作为用户所见数据与文件数据之间的桥梁.用户改变数据时,先改变链表(变量)中的数据,然后直接将整个链表重新写入文件,以做到"实时同步",非 ...

  8. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc

    基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...

  9. C语言控制结构程序设计,第3讲 C语言程序的基本控制结构_C语言程序设计(上)_pps_大学课件预览_高等教育资讯网...

    Page 1 C语言程序设计 清华大学 郑莉 安颖莲第三讲 C语言程序的基本控制结构参考书,计算机程序设计基础,第三章 ,C程序设计,第四章.第五章 Page 2 C语言程序设计 清华大学 郑莉 安颖 ...

  10. fir滤波器算法c语言程序,FIR滤波器设计C语言程序

    实际可运行的FIR滤波器系数设计的C语言程序 #include"math.h" #include"stdio.h" /*n:滤波器的阶数,n是奇数时可用来设计各 ...

最新文章

  1. 转载:Objective-C中的 instancetype 和 id 关键字
  2. swift SDWebImage 与 UIButton 出现的细节bug 不显示
  3. 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 2 assignment2_1
  4. openai-gpt_您可以使用OpenAI GPT-3语言模型做什么?
  5. java中iterator_如何在Java中读取CSV文件-Iterator和Decorator的案例研究
  6. 简单聊聊模型的性能评估标准
  7. grpc服务器和客户端互传数据
  8. 基于ADS的c语言程序设计实验,实验一:基于ADS软件传输线理论仿真设计与分析.docx...
  9. 哈夫曼编码原理与Python实现代码(附手动推导过程原稿真迹)
  10. c++ cstring 转换 char_C语言进阶之路:字符串与整数之间的转换!
  11. 面试题 04.06. 后继者
  12. 括号配对问题http://acm.nyist.net/JudgeOnline/problem.php?pid=2
  13. linux下的文档处理及tar命令
  14. 【数学建模】看了都说好,高温作业专用服装设计拟合函数模型,强烈建议收藏
  15. ubuntu18.04 安装nvidia显卡驱动
  16. DIN 轴承标准目录
  17. Java生成、解析二维码方案以及代码实现
  18. 我的心酸求职之路:如果可以,去学Java、C,不要搞Python
  19. 苹果内购 订单验证 21002 坑
  20. 机器学习测试模型 的混淆矩阵

热门文章

  1. iqooneo系统要不要更新_IQOOZ1即将发布,和IQOOneo3、OPPORenoACE对比,谁更值得入手?...
  2. 技嘉注入usb 3.0工具_技嘉怎么安装win10系统 技嘉安装win10系统步骤【图文介绍】...
  3. html5录音怎么保存到本地,详解HTML5 录音遇到的坑
  4. php json获取get请求,PHP简单的Curl的Get请求和Curl的Post请求和file_get_contents的Get请求获取接口JSON数据...
  5. 数据库可以存php代码,php把数组保存数据库程序代码
  6. gbase 8s oracle,GBase8s 查看数据库表空间信息
  7. jq之mouseup
  8. supervisor监控php进程程序,详解Supervisor进程守护监控(转)
  9. mysql 流程控制语句,mysql PL(procedure language)流程控制语句
  10. 广播 消息 没有服务器,服务器节点消息广播