一只青蛙一次可以跳1阶或者2阶,n阶,有多少种到达终点的方式。
2024-10-21 09:34:31
前两天面试遇到的一个题,当时没有想清楚,今天想了一下,po出来;
# -*-encoding:utf-8-*-
import sys end = 0 # 终点
cnt = 0 # 统计组合方式 def jump(start):
global cnt
for i in [1,2]:
cur = str(start)+"+"+str(i)
if eval(cur) >= end:
print cur
cnt += 1
continue
jump(cur) def main(n):
"""
一只青蛙一次可以跳1阶或者2阶,n阶,有多少种到达终点的方式。
"""
global end
end = n
jump(0)
print "count: "+str(cnt) if __name__ == "__main__":
main(int(sys.argv[1]))
D:\myGit\test>testFrog1.py 4
0+1+1+1+1
0+1+1+1+2
0+1+1+2
0+1+2+1
0+1+2+2
0+2+1+1
0+2+1+2
0+2+2
count: 8
D:\myGit\test>testFrog1.py 5
0+1+1+1+1+1
0+1+1+1+1+2
0+1+1+1+2
0+1+1+2+1
0+1+1+2+2
0+1+2+1+1
0+1+2+1+2
0+1+2+2
0+2+1+1+1
0+2+1+1+2
0+2+1+2
0+2+2+1
0+2+2+2
count: 13
这个题主要就是考算法-递归,当时没有想清楚乱写一通,还是自己有些紧张;
最新文章
- MySQL binlog中的事件类型
- [IOS]Swift 遍历预制的本地资源文件
- PHP上传文件示例
- 帝国cms栏目别名如何调用?
- 单例模式及C++实现
- Android基础_2 Activity线性布局和表格布局
- Openblas编译Android NDK库的步骤
- mysql死锁--源于外键关联
- 【转】Java基本数据类型
- A package manager for Qt
- 【Oracle】-【体系结构】-【DBWR】-DBWR进程相关理解
- Java中String做为synchronized同步锁使用详解
- ftp上传与下载文件
- cf1136E. Nastya Hasn't Written a Legend(二分 线段树)
- Mac 软件专题之:OS X Yosemite 精彩应用软件推荐
- MySQL插入更新_ON DUPLICATE KEY UPDATE
- 关于splice()方法,slice() 、split()方法讲解,reverse()方法、replace()方法
- sql中的in与not in,exists与not exists的区别
- MZOJ 1345 hero
- 全连接层(FC)与全局平均池化层(GAP)