[Python]小甲鱼Python视频第023~024课(递归:这帮小兔崽子、汉诺塔)课后题及参考解答
# -*- coding: utf-8 -*- """ Created on Thu Mar 7 19:44:16 2019 @author: Administrator """ """ 动动手: 0. 使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。 1. 写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==> [1, 2, 3, 4, 5] 2. 还记得求回文字符串那道题吗?现在让你使用递归的方式来求解,亲还能骄傲的说我可以吗? 没得思路,好好的为啥要用递归? 3. 使用递归编程求解以下问题: 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大? """ #dds0: def res_bin(num): if num == 0: return '0b' else: leaves = num % 2; return res_bin(num//2) +str(leaves) print(res_bin(254)) #dds1: def get_digits(n): result_list = list(); if n == 0: return []; else: result_list.extend(get_digits(n//10)); result_list.append(n%10); return result_list print(get_digits(123456)); #dds3: def age(n): temp = 0; if n == 1: print('第%d个人的年纪为%d岁' % (n,10)); return 10; else: temp = age(n-1)+2; print('第%d个人的年纪为%d岁' % (n,temp)); return temp; age(5);
~不再更新,都不让我写公式,博客园太拉胯了