兔子产子问题

本文探讨了著名的兔子产子问题,也称为斐波那契数列的直观实例。通过数学建模,解释了兔子每月繁殖的规律,展示了如何计算任意月份数量的兔子对数。同时,介绍了该问题在计算机科学中的应用,如算法设计和优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
题目:兔子产子问题
内容:有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第三个月
      后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数
	  为多少?
作答者:小白杨
收获:1、该题目是典型的迭代循环,而自己没看出来。即是一个变量不断用新值取代
         变量旧值,然后由变量旧值递推出变量新值的过程。算法可以描述为
		 {fib = fib2 = 1(n=1,2)初值  fibn = fibn-1 + fibn-2(n>=3)迭代公式 
 
*/

#include <stdio.h>
/* 
int main()
{
	int month,i;
	int a[31] = {0};       //定义一个数组存储每个月新生的兔子 
	
	a[1] = 1;              //第一个月的兔子为一个 
	printf("第1个月的兔子为1个\n");
	for(month=2;month<=30;month++)
	{
		for(i=0;i<month-1;i++)
		{
			a[month] += a[i];  //第N个月新生的兔子为从0~N-2个月的兔子之和 
		}
		printf("第%d个月的兔子为%d个\n",month,2*a[month]+a[month-1]);
	 } 
	 
	 return 0;
 }*/
 
 void main()
 {
 	long fib,fib1 = 1,fib2 = 1;
 	int month;
 	
 	printf("%12ld%12ld",fib1,fib2);  //输出第1个月和第2个月的兔子数
	 
	 for(month=3;month<=30;month++)
	 {
	 	fib = fib1+fib2;            //迭代求出当前月份的兔子数
		printf("%12d",fib);        //输出当前月份的兔子数
		if(month%4 == 0)
			printf("\n");           //每行输出4个
		fib2 = fib1;
		fib1 = fib; 
	  } 
  } 
/*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值