兔子繁殖问题 C语言编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了兔子繁殖问题 C语言编程相关的知识,希望对你有一定的参考价值。

题目是这样的:
一对小兔子一年后长成大兔子;一对大兔子每半年生一对小兔子。大兔子的繁殖期为4年,兔子的寿命是6年。假定第一年年初投放了一对小兔子,试编程计算,第n年末总共会有多少对兔子。n由键盘输入
这是一道关于递推的程序编程题目,但是找不到从问题的递推思路,知道思路的就写一下你的思路就可以了,不用写代码!!我只要知道一下思路就可以了·····

根据题意,得出以下结果:
年份:0 0.5 1 1.5 2 2.5 3 3.5 4 ...
兔子:1 1 2 3 5 8 13 21 34...
序号: 0 1 2 3 4 5 6 7 8...
所以发现规律:除前两个外,后面的则是等于前两个的种即:A0=1,A2=1,An=A(n-1)+A(n-2)
这样程序就可以开始编制了
#include "stdio.h"
main()

int year,total,i,a1,a2;
printf("\n请输入多少年后:");
scanf("%d",&year);
a1=1;
a2=1;
for(i=2;i<2*year;i++)

if(i%2==1)

a1=a1+a2;
total=a1;
else
a2=a1+a2;
total=a2;


printf("\n第%d年末总共会有%d对兔子",year,total);
参考技术A 用递归不是好的解决方法

for循环——兔子繁殖问题

有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?  分析:兔子的规律为数列,1,1,2,3,5,8,13,21 (用循环实现)

 

System.out.println("第1个月兔子的对数: 1");
System.out.println("第2个月兔子的对数: 1");
int f1 = 1, f2 = 1, f;
for (int i = 3; i <= 12; i++) {
  f = f2;
  f2 = f1 + f2;
  f1 = f;
  System.out.println("第" + i + "个月的兔子对数:" + f2);
}

 

运行结果:

第1个月兔子的对数: 1
第2个月兔子的对数: 1
第3个月的兔子对数:2
第4个月的兔子对数:3
第5个月的兔子对数:5
第6个月的兔子对数:8
第7个月的兔子对数:13
第8个月的兔子对数:21
第9个月的兔子对数:34
第10个月的兔子对数:55
第11个月的兔子对数:89
第12个月的兔子对数:144

以上是关于兔子繁殖问题 C语言编程的主要内容,如果未能解决你的问题,请参考以下文章

C语言试题八十六之兔子生兔子问题

C#语言设计 兔子繁殖问题。

C语言-斐波那契数兔子产仔问题

C语言求斐波那契(Fibonacci)数列通项(递归法非递归法)

生兔子的经典编程算法

斐波那契数列(C语言+java)