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 = 10 for 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 stringList Rprint(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核心编程答案