古典问题: 兔子总数

题目:

有一对兔子,从出生第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语言·古典问题: 兔子总数相关推荐

  1. c语言循环题兔子第三个月生,C语言上机习题

    C语言上机习题Tag内容描述: 1.晕(作业3) 看着这样的"回"形图案你晕吗? 让我们不用数组,来做出它. 输入: n.正方形的边长 输出: 边长为 n 的数字回形方阵. 测试输 ...

  2. java题兔子第三个月生_JAVA编程之古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子...

    问题是这样的:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子, 假如兔子都不死,问每个月的兔子总数为多少? 这个问题相信大家已经不在陌生了.很多博 ...

  3. java题兔子第三个月生_【Java】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每...

    需求: 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析: 这是一个斐波那契数列数列问题 同样 ...

  4. 一只兔子每三个月生兔子JAVA,兔子生兔子问题

    关于兔子生兔子的算法详解 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析: 第1个月  --  1对 第2 ...

  5. c语言程序题是如何判分的,C语言编程题判分系统的研究与实现

    摘要: 随着计算机技术和因特网的发展,B/S模式的教学系统在高校教学中显得越来越重要.C语言程序设计是计算机专业的一门重要的基础课程,具有实践性强的特点,在教学中应加大实践教学比例.本文利用网络技术开 ...

  6. c语言编程题考试自动评分系统,C语言编程题考试自动评分系统简介.ppt

    C语言编程题考试自动评分系统简介 主要内容 教材简介 学习方法 机考系统简介 教材简介 教学理念的更新 教材简介 教材简介 国内55所院校使用 新版增加的内容 强化知识点.算法.编程方法与技巧 [编程 ...

  7. c语言编程题输入两个直角边,C语言编程 直角三角形已知两边求第三边

    C语言编程题 求大神解答 好久没写C了,不知道对不对:intsum=0;intindex=0;for(;indexsum+=a[2][index];}returnsum; C语言编程题,求分段函数 刚 ...

  8. C语言填空题10道,3道C语言填空题,谁帮忙做下,谢谢

    3道C语言填空题,谁帮忙做下,谢谢0 功能:输出两个整数中大的那个数,两个整数由键盘输入. #include #include int main() { int a,b,*p1,*p2; p1=(in ...

  9. 沈阳工业大学c语言编程题,金融工程专业《C语言程序设计》启发式教学探讨

    一.引言 C语言是一门高级程序设计语言,掌握C语言不仅有利于提高学生的思维能力,而且有利于培养学生的编程能力,对学习其他计算机语言课程具有很大的帮助.因此,<C语言程序设计>既是计算机各类 ...

最新文章

  1. Jquery实战_读书笔记1—选择jQuery
  2. iOS指纹解锁和手势解锁
  3. 关于利用python进行验证码识别的一些想法
  4. linux虚拟网络设备--eth, tap/tun, veth-pair(九)
  5. 【luogu P3384 树链剖分】 模板
  6. ​北京大学 2022 年博士研究生招生简章
  7. C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)...
  8. logback日志pattern_[SpringBoot2.X]28- Spring Boot 的日志管理
  9. 关于css3的背景切割(background-clip)、背景原点(background-origin)的使用
  10. 玩转Kinetis之教你将K60主频超到200MHz以上
  11. python自动打开网页_python 自动批量打开网页的示例
  12. limesurvey php5.2,Limesurvey二次开发(接入CAS统一身份认证)随笔
  13. python 股票估值_【中金固收·固收+】隐藏价值的角落:限售股AAP估值及Python实现方法(上)...
  14. 超简单的晃咖、小咖秀视频去水印下载方法
  15. qq消息定时自动发送的简单实现策略
  16. BK7256,Wi-Fi6音视频soc-combo芯片,上海博通-内置Flash,支持720P
  17. Python开发:PyQT安装教程
  18. Vue开发环境搭建和vue-cli脚手架
  19. 数学知识(一):数论
  20. 记录一个vue监控屏幕宽度的问题

热门文章

  1. ceph radosgw-admin的操作
  2. GitHub 的 Fork 是什么意思?
  3. 电脑为什么会蓝屏的原因
  4. 汶川地震纪念感人mv《孩子快抓紧妈妈的手》
  5. 【人才盘点九宫格】你还不来学一学人才九宫格,知道领导在做人才梯度结构盘点时把你划分为属于哪一类人才吗?
  6. CQHMI品牌NR系列HMI人机界面在纺织机械设备行业中的应用
  7. Jungle Roads丛林道路(最小生成树PrimKruskal算法)
  8. CSDN大神多,在这里驻扎一下,沾沾神气
  9. Oauth2.0搭建开放平台接口
  10. mysql 实数型变量定义,MySQL实数类型使用注意事项