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
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-12/155896.htm
c语言程序兔子反之问题,C语言解决兔子产子问题代码及解析相关推荐
- 培训c语言程序,编程人员培训手册C语言程序设计基础
<编程人员培训手册C语言程序设计基础>由会员分享,可在线阅读,更多相关<编程人员培训手册C语言程序设计基础(18页珍藏版)>请在人人文库网上搜索. 1.第2章:C语言程序设计基 ...
- 培训c语言程序,编程人员培训手册C语言程序设计基础.PPT
编程人员培训手册C语言程序设计基础.PPT 第2章C语言程序设计基础,学习的意义,从本章开始我们正式进入C语言程序设计的学习,也许大家会问为什么我们要学习C语言呢 理由1因为C语言流行. 理由2因为C ...
- c语言程序第一章编程,c语言程序的设计第一章 C语言编程入门.ppt
c语言程序的设计第一章 C语言编程入门 第1章 C语言编程入门 本章是本书的入门篇,专为初学者熟悉编程过程.掌握程序结构而准备的. 本章学习目标 ? 1)? 能够通过模仿与改变来构造带有测试函数的C语 ...
- c语言程序的书写格式,C语言程序书写格式辅导
C语言程序书写格式辅导 C语言具有语句简洁的特点,C语言程序的可读性比较差.因此,为了增强C语言的可读性,正确的书写格式就显得十分重要.同样一个程序采用不同的书写方法.尽管都可以得到相同的结果,有的书 ...
- c语言程序头文件作用,C语言头文件
C语言头文件教程 C 语言的头文件一般都是 .h 做为结尾的. C语言头文件详解 语法 #include 参数 参数 描述 filename 我们需要引入的头文件的名称. 说明 C 语言的头文件一般都 ...
- c语言程序可以单独编译,c语言中的函数可不可以单独进行编译?_后端开发
在C语言中,要求参加运算的数必须是整数的运算符是什么_后端开发 在C语言中要求参加运算的数必须是整数的运算符是"%":"%"符号在c语言中有两种释义,一是求余符 ...
- 更改c语言程序保存地址吗,C语言文本文件实现局部修改
前言:以往进行文件操作时,都是以链表(变量)作为用户所见数据与文件数据之间的桥梁.用户改变数据时,先改变链表(变量)中的数据,然后直接将整个链表重新写入文件,以做到"实时同步",非 ...
- 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc
基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...
- C语言控制结构程序设计,第3讲 C语言程序的基本控制结构_C语言程序设计(上)_pps_大学课件预览_高等教育资讯网...
Page 1 C语言程序设计 清华大学 郑莉 安颖莲第三讲 C语言程序的基本控制结构参考书,计算机程序设计基础,第三章 ,C程序设计,第四章.第五章 Page 2 C语言程序设计 清华大学 郑莉 安颖 ...
- fir滤波器算法c语言程序,FIR滤波器设计C语言程序
实际可运行的FIR滤波器系数设计的C语言程序 #include"math.h" #include"stdio.h" /*n:滤波器的阶数,n是奇数时可用来设计各 ...
最新文章
- 转载:Objective-C中的 instancetype 和 id 关键字
- swift SDWebImage 与 UIButton 出现的细节bug 不显示
- 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 2 assignment2_1
- openai-gpt_您可以使用OpenAI GPT-3语言模型做什么?
- java中iterator_如何在Java中读取CSV文件-Iterator和Decorator的案例研究
- 简单聊聊模型的性能评估标准
- grpc服务器和客户端互传数据
- 基于ADS的c语言程序设计实验,实验一:基于ADS软件传输线理论仿真设计与分析.docx...
- 哈夫曼编码原理与Python实现代码(附手动推导过程原稿真迹)
- c++ cstring 转换 char_C语言进阶之路:字符串与整数之间的转换!
- 面试题 04.06. 后继者
- 括号配对问题http://acm.nyist.net/JudgeOnline/problem.php?pid=2
- linux下的文档处理及tar命令
- 【数学建模】看了都说好,高温作业专用服装设计拟合函数模型,强烈建议收藏
- ubuntu18.04 安装nvidia显卡驱动
- DIN 轴承标准目录
- Java生成、解析二维码方案以及代码实现
- 我的心酸求职之路:如果可以,去学Java、C,不要搞Python
- 苹果内购 订单验证 21002 坑
- 机器学习测试模型 的混淆矩阵
热门文章
- iqooneo系统要不要更新_IQOOZ1即将发布,和IQOOneo3、OPPORenoACE对比,谁更值得入手?...
- 技嘉注入usb 3.0工具_技嘉怎么安装win10系统 技嘉安装win10系统步骤【图文介绍】...
- html5录音怎么保存到本地,详解HTML5 录音遇到的坑
- php json获取get请求,PHP简单的Curl的Get请求和Curl的Post请求和file_get_contents的Get请求获取接口JSON数据...
- 数据库可以存php代码,php把数组保存数据库程序代码
- gbase 8s oracle,GBase8s 查看数据库表空间信息
- jq之mouseup
- supervisor监控php进程程序,详解Supervisor进程守护监控(转)
- mysql 流程控制语句,mysql PL(procedure language)流程控制语句
- 广播 消息 没有服务器,服务器节点消息广播