c语言循环题兔子第三个月生,C语言·古典问题: 兔子总数
古典问题: 兔子总数
题目:
有一对兔子,从出生第3个月起每个月都生一对兔子,小兔子长到第3月后每个月又生一对兔子。假设所有兔子都不死,编程求第20个月总数为多少? 难点:从第3月起,能生小兔子的大兔子每个月都要生一对兔子。
分析:
月 份
小兔子
中兔子
大兔子
兔子总数
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
8
8
5
8
21
9
13
8
13
34
10
21
2
21
55
11
34
2
34
89
此时可找出规律:每个月总数是前两个月总数之和
方法一
从第三个月开始计算。前面两个月兔子数量确定(n1;n2),后面每个月的兔子数量等于前两个月兔子数量之和。前一个月的兔子数n2;前两个月的兔子数n1;所以从第三个月开始(n),兔子数量为n=n1+n2。此后前两个月的数目进行更新向后移动一月,方便下一个循环。
void main ()
{
int i,n,n1=1,n2=1;
for(i=3;i<=20;i++)
{
n=n1+n2;//本月兔子的数目(第三月开始)
n1=n2;//n1指向后移一位
n2=n;//n2指向后移一位
printf("第%2d个月兔子总数为%4d个\n",i,n);
}
printf("第20个月兔子总数为%d个",n);
}
方法二
从第一个月开始循环,将第一个月的数量先存储起来k=f1,在将后面两个月的兔子数量更新。后面第一个月的兔子数改变为后面第二个月f1=f2,后面第二个月的兔子数为前两个月之和f2=f2+k(f1未改变时的值)。
#include int main()
{
long f1=1,f2=1,k;
int i;
for(i=1;i<=20;i++ )
{
k=f1;//第i个月的兔子个数
f1=f2;//后面一个月的兔子个数
f2=k+f2;//后面二个月的兔子个数
printf("第%2d月有%4ld只兔子;\n", i,k);
}
}
方法三
每个循环处理两个月。每次更新,第一个月是前两个月之和f1+f2,第二个月也是前两个月之和f2=f2+f1(此时f1已经改变)
int main( )
{
long f1=1,f2=1;
int i;
//每次循环确定2个月的兔子个数
for(i=1;i<=10;i++)
{
printf("第%2d月有%4ld只兔子;\n第%2d月有%4ld只兔子;\n",2*i-1,f1,2*i,f2);
f1=f1+f2;//第2n-1个月兔子数
f2=f2+f1;//第2n个月兔子数
}
}
规律:每个月总数是前两个月总数之和
c语言循环题兔子第三个月生,C语言·古典问题: 兔子总数相关推荐
- c语言循环题兔子第三个月生,C语言上机习题
C语言上机习题Tag内容描述: 1.晕(作业3) 看着这样的"回"形图案你晕吗? 让我们不用数组,来做出它. 输入: n.正方形的边长 输出: 边长为 n 的数字回形方阵. 测试输 ...
- java题兔子第三个月生_JAVA编程之古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子...
问题是这样的:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子, 假如兔子都不死,问每个月的兔子总数为多少? 这个问题相信大家已经不在陌生了.很多博 ...
- java题兔子第三个月生_【Java】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每...
需求: 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析: 这是一个斐波那契数列数列问题 同样 ...
- 一只兔子每三个月生兔子JAVA,兔子生兔子问题
关于兔子生兔子的算法详解 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析: 第1个月 -- 1对 第2 ...
- c语言程序题是如何判分的,C语言编程题判分系统的研究与实现
摘要: 随着计算机技术和因特网的发展,B/S模式的教学系统在高校教学中显得越来越重要.C语言程序设计是计算机专业的一门重要的基础课程,具有实践性强的特点,在教学中应加大实践教学比例.本文利用网络技术开 ...
- c语言编程题考试自动评分系统,C语言编程题考试自动评分系统简介.ppt
C语言编程题考试自动评分系统简介 主要内容 教材简介 学习方法 机考系统简介 教材简介 教学理念的更新 教材简介 教材简介 国内55所院校使用 新版增加的内容 强化知识点.算法.编程方法与技巧 [编程 ...
- c语言编程题输入两个直角边,C语言编程 直角三角形已知两边求第三边
C语言编程题 求大神解答 好久没写C了,不知道对不对:intsum=0;intindex=0;for(;indexsum+=a[2][index];}returnsum; C语言编程题,求分段函数 刚 ...
- C语言填空题10道,3道C语言填空题,谁帮忙做下,谢谢
3道C语言填空题,谁帮忙做下,谢谢0 功能:输出两个整数中大的那个数,两个整数由键盘输入. #include #include int main() { int a,b,*p1,*p2; p1=(in ...
- 沈阳工业大学c语言编程题,金融工程专业《C语言程序设计》启发式教学探讨
一.引言 C语言是一门高级程序设计语言,掌握C语言不仅有利于提高学生的思维能力,而且有利于培养学生的编程能力,对学习其他计算机语言课程具有很大的帮助.因此,<C语言程序设计>既是计算机各类 ...
最新文章
- Jquery实战_读书笔记1—选择jQuery
- iOS指纹解锁和手势解锁
- 关于利用python进行验证码识别的一些想法
- linux虚拟网络设备--eth, tap/tun, veth-pair(九)
- 【luogu P3384 树链剖分】 模板
- ​北京大学 2022 年博士研究生招生简章
- C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)...
- logback日志pattern_[SpringBoot2.X]28- Spring Boot 的日志管理
- 关于css3的背景切割(background-clip)、背景原点(background-origin)的使用
- 玩转Kinetis之教你将K60主频超到200MHz以上
- python自动打开网页_python 自动批量打开网页的示例
- limesurvey php5.2,Limesurvey二次开发(接入CAS统一身份认证)随笔
- python 股票估值_【中金固收·固收+】隐藏价值的角落:限售股AAP估值及Python实现方法(上)...
- 超简单的晃咖、小咖秀视频去水印下载方法
- qq消息定时自动发送的简单实现策略
- BK7256,Wi-Fi6音视频soc-combo芯片,上海博通-内置Flash,支持720P
- Python开发:PyQT安装教程
- Vue开发环境搭建和vue-cli脚手架
- 数学知识(一):数论
- 记录一个vue监控屏幕宽度的问题