[Python]小甲魚Python視頻第023~024課(遞歸:這幫小兔崽子、漢諾塔)課後題及參考解答
阿新 • • 發佈:2019-03-09
列表 使用遞歸 admin odi res urn 問題 文字 n-1
# -*- 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);
[Python]小甲魚Python視頻第023~024課(遞歸:這幫小兔崽子、漢諾塔)課後題及參考解答