初级系列5.兔子产子问题

兔子产子问题

问题描述
有一对兔子,从出生后的第3个月起每个月都生一对兔子, 小兔子长到第3个月后每个月又生一对兔子, 假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?
问题分析
月数 兔子总数
1 1
2 1
3 2
4 3
5 5
6 8
7 13
Fibonacci数列

算法设计

迭代循环, 即是一个不断用新值取代变量的旧值,然后由变量旧值递推出变量新值
的过程, 这种迭代与如下因素有关:初值, 迭代公式, 迭代次数

迭代公式
fib1 = fib2 =1 (n =1, 2) 初值
fib(n) = fib(n-1) + fib(n-2) (n >= 3) 迭代公式

/* !< use c */
#include <stdio.h>
#include <stdlib.h>

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("%12d", fib);                //输出当前月份兔子数
		if (i % 4 == 0)
			printf("\n");                   //每行输出4个
		fib1 = fib2;                        //为下一次迭代作准备, 求出新的fib2
		fib2 = fib;                         //求出新的fib1
	}
	return 0;
}

posted @   电院院长  阅读(321)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示