首页 > 代码库 > 算法题解

算法题解

        斐波那契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。特别指出:第0项是0,第1项是第一个1。这个数列从第二项开始,每一项都等于前两项之和。


1、有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法?

解:这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……

1,2,3,5,8,13……所以,登上十级,有89种走法。


2、一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?

解:依次类推可以列出下表:

编程实现:

#include <stdio.h>
void main()
{
	int s1, s2, s, i;
	s1=1;
	s2=1;
	printf("%d\n%d\n", s1, s2);
	for(i=0; i<20; i++)
	{
		s = s1 + s2;
		s1 = s2;
		s2 = s;
		printf("%d\n",s);
	}
}

3、

算法题解