几个递归示例
来源:互联网 发布:淘宝店铺装修模块代码 编辑:程序博客网 时间:2024/06/10 18:20
一、使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。
版本1:
有点小问题!
>>> def Bin(n): res = "0b" if n: res = Bin(n//2) + str(n%2) return res>>> Bin(127)'0b1111111'>>> Bin(0)'0b0'
版本2:
有点小问题!
>>> def Bin(n): temp = '' if n: temp = Bin(n//2) temp += str(n%2) return temp #此处需要返回temp,与版本1不同 else: return temp>>> Bin(0)''>>> Bin(1)'1'
改进版3:
>>> def Bin(n): if n==0 or n==1: return "0b"+str(n) if n>1: return Bin(n//2) + str(n%2)>>> Bin(0)'0b0'>>> Bin(1)'0b1'>>> Bin(8)'0b1000'>>> bin(8)'0b1000'
二、写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>[1, 2, 3, 4, 5]
版本1:
有点小问题!
>>> def get_digits(n): res = [] if n : res = get_digits(n//10) + [n%10] return res>>> get_digits(1)[1]>>> get_digits(10)[1, 0]>>> get_digits(0)[]
版本2:
>>> def get_digits(n): if n//10 == 0: return [n] else: return get_digits(n//10) + [n%10]>>> get_digits(0)[0]>>> get_digits(1)[1]>>> get_digits(10)[1, 0]>>> get_digits(7007)[7, 0, 0, 7]>>> str(7007)'7007'>>> list(str(7007))['7', '0', '0', '7']
三、编写程序: 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?(用函数实现)
>>> def getAge(n): if n == 1: return 10 if n > 1: age = getAge(n-1) + 2 return age>>> getAge(5)18
阅读全文
0 0
- 几个递归示例
- 经典面试题 之 递归调用 几个经典示例
- 几个递归函数
- 几个递归小题
- 几个典型递归函数
- echo的几个示例
- SQLAPI++的几个示例
- fstream的几个示例
- 线程的几个示例
- spark的几个示例
- 递归算法示例
- SQL 递归查询示例
- 递归算法示例
- 递归算法示例
- 递归函数使用示例
- java 递归示例
- 递归调用示例
- postgres 递归查询 示例
- 为emacs编辑urdf文件增加代码补全功能
- 1484: 青蛙(四)
- 语言实践2-驱动学习(3)ioctl初步学习
- 二叉树的先序中序后序遍历(非递归)
- Quartus下软硬核固化到EPCS中(JTAG)延续上篇
- 几个递归示例
- 21. 引用
- View的事件体系-基础知识
- LeetCode 101. Symmetric Tree
- Spring的事务管理
- 用unity运行不了发生的错误
- HTML5 WEBGL学习2 实时3D渲染
- 单层感知器的python实现
- Forming a Magic Square