1. 题目描述:
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
输入:
输入包括一个整数N,(1<=N<90)。
输出:
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
样例输入:
4
样例输出:
5
分析:假设 f(n) 为上 n 阶楼梯的方法数量。则如果只有 1 阶楼梯,显然只有一种方法走完;如果有 2 阶楼梯,显然有两种走法走完,所以有 f(0)=0, f(1)=1, f(2)=2。当有 n 阶楼梯时,显然每一步只有两种走法(走一阶或走两阶),第一步的走法也不例外。如果第一步走一阶,那还剩下 n-1 阶,则剩下的楼梯共有 f(n-1) 种走法;如果第一步走两阶,则剩下的楼梯共有 f(n-2) 种走法。从而有:对于 n 阶楼梯,共有 f(n-1) + f(n-2)种走法。从而可以得到推导公式:
f(0)=0, f(1)=1, f(2)=2, ..., f(n)=f(n-1) + f(n-2)
很明显,这就是我们非常熟悉的 fibon
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
输入:
输入包括一个整数N,(1<=N<90)。
输出:
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
样例输入:
4
样例输出:
5
分析:假设 f(n) 为上 n 阶楼梯的方法数量。则如果只有 1 阶楼梯,显然只有一种方法走完;如果有 2 阶楼梯,显然有两种走法走完,所以有 f(0)=0, f(1)=1, f(2)=2。当有 n 阶楼梯时,显然每一步只有两种走法(走一阶或走两阶),第一步的走法也不例外。如果第一步走一阶,那还剩下 n-1 阶,则剩下的楼梯共有 f(n-1) 种走法;如果第一步走两阶,则剩下的楼梯共有 f(n-2) 种走法。从而有:对于 n 阶楼梯,共有 f(n-1) + f(n-2)种走法。从而可以得到推导公式:
f(0)=0, f(1)=1, f(2)=2, ..., f(n)=f(n-1) + f(n-2)
很明显,这就是我们非常熟悉的 fibon