—、前情回顾
04【C语言&趣味算法】“抓交通肇事犯"问题。算法改进:设置"标识变量”,有效减少循环次数。
03【C语言&趣味算法】(值得品味的一道题)打鱼还是晒网?结构体的简单应用。函数的应用。判断闰年的应用。求指定日期距1990年1月1日的天数。
02【C语言&趣味算法】借书方案问题:小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能借1本,则可以有多少种不同的借法?
01【C语言&趣味算法】百钱百鸡问题(问题简单,非初学者请忽略叭)。请注意算法的设计(程序的框架),程序流程图的绘制,算法的优化。
二、Problem:兔子产子问题
这是一个很经典的问题。
2.1 Description of the problem(问题描述)
2.2Analysis of the problem(问题分析)
2.3 Algorithm design(算法设计)
2.4 Full code and output(完整code及输出)
根据上面的分析,可以得到如下code:
// 趣味05:兔子产子 问题 #include<stdio.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个*/ fib2=fib1; /*为下一次迭代作准备,求出新的fib2*/ fib1=fib; /*求出新的fib1*/ } }
正如下面我标的箭头—样,从第三个值开始,均是前两个的值之和。
2.5 lssue extension optimisation(问题拓展优化)