腾讯面试问题:50步,向上走有多少路?
做这个问题最简单的方法就是分析。
即假设梯子有N层,那么按照N=1,2,3,4逐步分析...
一般规律,即a(n)=a(n-2)+a(n-1),可以看出这是一个递推公式。
同时也满足斐波那契数列。
所以20步走a(20)是斐波那契数列的第20项。
a(20)=fib(20)=10946
另一个更复杂。根据走两步的不同情况分析,至少不走一步,最大为10。(也可以按照1的步骤,但是太多了。)
(1)有1种情况都没有采取任何步骤。
(2)取1 2步,共* * *步数19,随机选取1 C (19,1)为2步。
(3)取两个2步,总共* * *步数为18,在18中随机选取两个作为2步。C(18,2)
以此类推C (17,3);C(16,4);C(15,5)……C(10,10)
总路线= 1+C (19,1)+C (18,2)+C (17,3)+...+C (10,65438+。
=1+19+153+ 680+1820+……+1=10946