1. 程式人生 > >[Python]小甲魚Python視頻第023~024課(遞歸:這幫小兔崽子、漢諾塔)課後題及參考解答

[Python]小甲魚Python視頻第023~024課(遞歸:這幫小兔崽子、漢諾塔)課後題及參考解答

列表 使用遞歸 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課(遞歸:這幫小兔崽子、漢諾塔)課後題及參考解答