11-14.
遞迴。我們也來看下在第8章中的費伯納西數列。重寫你先前計算費伯納西數列的解(練習8-9)以便你可以使用遞迴。
【答案】本文來自部落格園balian
代碼如下:
#-*- encoding: utf-8 -*-def fibonacci(n): "該函數能產生數列的第n個值" returnn >= 2 and fibonacci(n - 2) + fibonacci(n - 1) or n
# From www.cnblogs.com/balian/
fiboseq=[]number = 10for i in range(number): fiboseq.append(fibonacci(i))print fiboseq
【參考】
Fibonacci(斐波那契)序列的4種求解演算法:
http://mrwlwan.wordpress.com/2011/09/02/4%E7%A7%8D-fibonacci%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E5%BA%8F%E5%88%97%E7%9A%84%E7%AE%97%E6%B3%95/
11-15.
遞迴。重寫練習6-5的解,用遞迴向後列印一個字串。用遞迴向前以及向後列印一個字串。
【注】附英文版題目的原文:
Recursion. Rewrite your solution to Exercise 6-5, which prints a string backwards to use recursion. Use recursion to print a string forward and backward.
【答案】
代碼如下:
#-*- encoding: utf-8 -*-def Rprint(n, string): print string.pop(0), #當參數為0時,順序輸出字串。當參數為預設,也就是無參數時,逆序輸出字串 if n > 1: Rprint(n-1, string)a = raw_input("Please input a string ... ")stringList = []for i in a: stringList.append(i) print stringListRprint(len(stringList), stringList)
# From www.cnblogs.com/balian/
【執行結果】參數為預設時,逆序輸出字串。
Please input a string ... this is an example.['t', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', 'n', ' ', 'e', 'x', 'a', 'm', 'p', 'l', 'e', '.']. e l p m a x e n a s i s i h t
【未完】
本題答案完成得不理想,期待更好的解答。
keyword Python核心編程答案