首页 > 试题广场 >

童年生活二三事

[编程题]童年生活二三事
  • 热度指数:4763 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
NowCoder小时候走路喜欢蹦蹦跳跳,他最喜欢在楼梯上跳来跳去。
但年幼的他一次只能走上一阶或者一下子蹦上两阶。
现在一共有N阶台阶,请你计算一下NowCoder从第0阶到第N阶共有几种走法。

输入描述:
输入包括多组数据。每组数据包括一个整数n, (1≤n≤90)。


输出描述:
对应每个输入包括一个输出。
为redraiment到达第n阶不同走法的数量。
示例1

输入

1<br/>2

输出

1<br/>2
def redra(n):
    if n == 1:
        return 1
    elif n == 2:
        return 2
    else:
        if ***.get(n)!=None:
            return ***[n]
        else:
            newSum = redra(n-1) + redra(n-2)
            ***[n] = newSum
            return newSum
            
*** = {1:1, 2:2}
while True:
    try:
        n = int(input())
    except:
        break
    print(redra(n)) 
Python using memoization and recursion
发表于 2017-11-08 21:23:31 回复(0)

python解法。一个跳台阶的问题起成这样的名字也是醉了。

while True:
    try:
        n=int(input())
        arr=[1,2]
        while len(arr)<n:
            arr.append(arr[-1]+arr[-2])
        print(arr[n-1])
    except:
        break
发表于 2017-10-17 11:23:02 回复(2)