兔子繁衍问题

学习目标:

1、问题描述
有一对兔子,从出生后的第3个月起每个月都生一堆兔子。小兔子长到第三个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少?

2、问题分析

在这里插入图片描述

3、算法设计

该题目是典型的迭代循环

公式展示
f i b n = f i b n − 1 + f i b n − 2 ( n > = 3 ) . 迭 代 公 式 fib_n=fib_n-_1+fib_n-_2(n>=3).迭代公式 fibn=fibn1+fibn2(n>=3).
f i b = f i b 2 = 1 ( n = 1 , 2 ) . 初 值 fib = fib_2=1(n=1,2). 初值 fib=fib2=1(n=1,2).

fib1是前一个月的兔子数,fib2中存放的是前两个月的兔子数

4、 程序代码

#include<stdio.h>
void 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个*/
		fib2=fib1;			/*为下一次迭代作准备,求出新的fib2*/
		fib1=fib;			/*求出新的fib1*/
	}
}

5、 运行结果
在devc++下运行,结果如下:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值