古典兔子问题

问题

代码

解析

目录

问题

代码

解析


问题

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
      程序分析:兔子的规律为数列 (为斐波那契数列)

 

兔子繁殖的规律月数小兔子中兔子老兔子兔子总数
11001
20101
31012
41113
52125
63238
...............

C语言代码:

#include<stdio.h>
int main()
{
	printf("请输入一个月份\n");
	int i,m,a=1,b=1,c;
	scanf("%d",&m);
	if(m==1)
	printf("第1月份的兔子对数为%d对",a);
	else if(m==2)
	printf("第2月份的兔子对数为%d对",b);
	else if (m>=3)
	{
	for(i=3;i<=m;i++)
	{
		c=a+b;
		a=b;
		b=c;
	}
	printf("第%d月份的兔子对数为%d对",m,c);	}
	
	return 0;
}

运行结果为:

请输入一个月份

代入数据验证:

请输入一个月份
2
第2月份的兔子对数为1对
--------------------------------
Process exited after 3.572 seconds with return value 0
请按任意键继续. . .
请输入一个月份
7
第7月份的兔子对数为13对
--------------------------------
Process exited after 3.215 seconds with return value 0
请按任意键继续. . .

解析

斐波那契数列的特点为从第三位开始每一位都是前两位的和,该程序的运行主要为:

for(i=3;i<=m;i++)
	{
		c=a+b;
		a=b;
		b=c;
	}

利用for循环将第前两位的和赋给第三位并以此类推;

for语句的一般格式为for(表达式1;表达式2;表达式3)

注意for语句的要求:

表达式1一般为赋值表达式,给循环变量赋初值;

表达式2一般为关系表达式或逻辑表达式,作为循环控制条件;

表达式3一般为赋值表达式,给循环控制变量增量或减量。

表达式之间用;隔开。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值