C语言程序学习11

努力学习C语言的牧狗(C语言经典100例)———第十一题

致敬老大哥,因为最近学校各种大作业要写,我成功的写完了四篇超一千字的文章,由于第九和第十题两个都为输出图片,标准答案给的代码我也输出不了,因为ASCII值可能只到127,输出的只有乱码。我只能跳过了,如果有大佬能做出来,请告诉我,谢谢!
第十一题:
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
思路:我们在做数学应用题时,特别是在高中,先建模后解模是做每一题的通法。做这一题也一样,而这一题就是以斐波那契数列为模型的一道数列求值题。由于斐波那契数列的通项是:
An=An-1+An-2(n>=3)所以那对兔子前两个月都没有生。就像我给老大哥评论的一样。这一题可以将这个问题类比成细菌分裂问题,将一对兔子类比成一个细菌,因为细菌只是自行分裂,因此这样问题就好想很多了。这便是建模。而解模后几项很大,这就要用到计算机了。
解:

#include<stdio.h>
main()
{
	int S[40], x, i;
	S[0] = 1;
	S[1] = 1;
	for(i=2;i<40;i++)
	{
		S[i] = S[i - 1] + S[i - 2];
	}
	for (i = 0;i <= 39;i++)
	{
		printf("%10d", S[i]);
		if ((i + 1) % 8 == 0)
			printf("\n");
	}
}

而得到的结果是这样的:
在这里插入图片描述
确实,最后几项的个数位数是挺大的。我特地把中间的间隔加到10才勉强分开。斐波那契数列是可以好好研究一下。很多时候一些题目并没有我们想的那么困难,只是如同洋葱一样,他的外皮很多,需要一层一层的剥开才能找到他的心,剥皮的过程是很艰辛的,但只要剥开了,那就能成功的做出这一题。
后记:因为四级考试快到了,再加上这星期被选为学生代表参加会议,时间是非常的紧,我也是忙里偷闲才做了这一次博客,而我vs已经做到18题了,做出一道题并不算难,但真是要把这一题讲明白确实不容易,还望大家理解,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值