| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 85167 | sh25_wangtaojie | 爬楼梯 | Python3 | 通过 | 28 MS | 3724 KB | 1353 | 2026-03-06 15:21:50 |
def climb_stairs(n): """ 计算爬楼梯的不同走法数 每次可以走1级或2级台阶 使用动态规划优化空间复杂度 Args: n: 楼梯级数 Returns: 不同的走法数 """ if n <= 2: return n # 只需要保存前两项的值 prev2 = 1 # f(n-2) prev1 = 2 # f(n-1) # 从第3级开始计算到第n级 for i in range(3, n + 1): current = prev1 + prev2 # f(n) = f(n-1) + f(n-2) prev2 = prev1 prev1 = current return prev1 def main(): """ 主函数:处理多行输入,计算每行楼梯级数对应的走法数 """ import sys # 读取所有输入行 lines = [] try: for line in sys.stdin: line = line.strip() if line: lines.append(line) except EOFError: pass # 处理每一行输入 for line in lines: try: n = int(line) if 1 <= n <= 30: result = climb_stairs(n) print(result) else: print("输入超出范围(1-30)") except ValueError: print("输入格式错误,请输入正整数") if __name__ == "__main__": main()