笔试题
一个楼梯有10阶台阶,每次只能上1级或者2级,走完这10级台阶共有多少种走法?
这就是一个斐波那契数列:登上第一级台阶有一种登法;登上两级台阶,有两种登法;登上三级台阶,有三种登法;登上四级台阶,有五种登法……
1,2,3,5,8,13……所以,登上十级,有89种
一个楼梯共有10级台阶.规定每步可以上一级或二级台阶,最多可以上三级台阶.从地面到最高一级,一共有 _种走法
【分析】分别求出当n=1、2、3、4…时的不同走法,找出规律,求出当n=10时a10的值即可.
【解答】解:如果用n表示台阶的级数,a n表示某人走到第n级台阶时,所有可能不同的走法,容易得到:
①当n=1时,显然只要1种跨法,即a 1=1.
②当n=2时,可以一步一级跨,也可以一步跨二级上楼,因此,共有2种不同的跨法,即a2=2.
③当n=3时,可以一步一级跨,也可以一步三级跨,还可以第一步跨一级,第二步跨二级或第一步跨二级,第二步跨一级上楼,因此,共有4种不同的跨法,即a3=4.
④当n=4时,分三种情况分别讨论:
如果第一步跨一级台阶,那么还剩下三级台阶,由③可知有a3=4(种)跨法.
如果第一步跨二级台阶,那么还剩下二级台阶,由②可知有a2=2(种)跨法.
如果第一步跨三级台阶,那么还剩下一级台阶,由①可知有a1=1(种)跨法.
根据加法原理,有a4=a1+a2+a3=1+2+4=7
类推,有a5=a2+a3+a4=2+4+7=13;
a6=a3+a4+a5=4+7+13=24;
a7=a4+a5+a6=7+13+24=44;
a8=a5+a6+a7=13+24+44=81;
a9=a6+a7+a8=24+44+81=149;
a10=a7+a8+a9=44+81+149=274.
故答案为:274.
【点评】本题考查的是排列组合问题,根据排列组合原理分别求出当n=1、2、3、4…时的不同走法,找出规律是解答此题的关键.
fibo1(10)的递归调用次数
int fibo1(int n)
{
if(n==0) return 0;
if(n==1) return 1;
return fibo1(n-1)+fibo1(n-2);
}
fibo(1) 1次
fibo(2) 3次
fibo(3) =1+3+1=5次
fibo(5)=3+5+1=9次
。。。。fibo(10)=67+109+1=177次
将10个相同的球随机放入编号为1,2,3,4的四个盒子中,则每个盒子不空的投放方法有多少种?
使用隔板法,C(9,3)=84