练习题
来源:互联网 发布:com域名怎么注册 编辑:程序博客网 时间:2024/06/05 00:23
上台阶
有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。
给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。
测试样例:
3
返回:2
Java代码
package com.algorithm;/** * Created by wwh on 2017/12/8. */public class Main01 { public static void main(String argc[]) { GoUpstairs obj = new GoUpstairs(); int result = obj.countWays(50); System.out.println(result); } public static class GoUpstairs { public int countWays(int n) { final int VALUE = 1000000007; if(n == 1) return 0; else if(n == 2) return 1; else if(n == 3) return 2; int res; int first = 1, second = 2, ret = 0; while(n > 3) { ret = (first + second)%VALUE; first = second; second = ret; n--; } return ret; } }}
python代码
class GoUpstairs: def countWays(self, n): res = [0, 1, 2] while len(res) < n: res.append(res[-1] + res[-2]) return res[n-1]%1000000007obj = GoUpstairs()res = obj.countWays(6)print res
class GoUpstairs: def countWays(self, n): if n < 1: return 0 res = [0, 1, 2] if n > 3: for i in range(3, n): res.append((res[i - 1] + res[i - 2])%1000000007) return res[n - 1]if __name__ == "__main__": maxNumStairs = 100 print("num stairs: (Results)") for cnt in range(1, maxNumStairs): stairs = GoUpstairs() res = stairs.countWays(cnt) print("%d stairs: (%d)" % (cnt, res))
阅读全文
0 0
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- 练习题
- ViewRootImpl、Surface、SurfaceFlinger简介
- Spark项目:知名手机厂商用户行为实时分析系统
- linux下boost的一个扩展线程池-threadpool-的学习
- Hive与关系数据库的区别
- 类加载机制
- 练习题
- gsoap 命令参数介绍(wsdl2和soapcpp)
- redis-Sentinel哨兵原理与实战
- 构建一个Springboot项目
- ServerSocket实现 一个简单的Web服务器 [引]
- Maven(1):介绍+安装+下载
- 凯哥自媒体:怎样用今日头条自媒体赚钱?
- 【servlet】文件的上传与下载
- Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0