楼梯有n个台阶。你可以一次上一两步。你能通过编程计算出多少种不同的方法?
[参考解(递归法)]依据:楼梯有一步,只有一条路(一步上);两步,有两条路(一步上,或两步上);递归:当有n步时,有count(n)条路,最后一步是一步,有count(n-1)条路;最后一步是两步,有count(n-2)条路。所以count(n)=count(n-1)count(n-2)。可见,这个问题的数学模型实际上是斐波那契数。
#包括和限制。h>intmain(){unsignedlongcount(intn)intnunsignedlongmprintf(“pleaseinputtheorderofstairs:”)scanf(%d“,&n)m=count(n)printf(“有%lu种爬楼梯的方法n”,m)return0}无符号longcount(intn){无符号longif(n==1)f=1elseif(n==2)f=2elsef=count(n-1)count(n-2)return(f)}12345678910112131415161718192021223