题目: 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
程序分析: 关键是计算出每一项的值。
程序源代码:
#!/usr/bin/python # -*- coding: UTF-8 -*- Tn = 0 Sn = [] n = int(raw_input('n = :\n')) a = int(raw_input('a = :\n')) for count in range(n): Tn = Tn + a a = a * 10 Sn.append(Tn) print Tn Sn = reduce(lambda x,y : x + y,Sn) print Sn
以上实例输出结果为:
n = : 2 a = : 4 4 44 48
题目: 打印出如下图案(菱形):
* *** ***** ******* ***** *** *
程序分析: 先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。
程序源代码:
#!/usr/bin/python # -*- coding: UTF-8 -*- from sys import stdout for i in range(4): for j in range(2 - i + 1): stdout.write(' ') for k in range(2 * i + 1): stdout.write('*') print for i in range(3): for j in range(i + 1): stdout.write(' ') for k in range(4 - 2 * i + 1): stdout.write('*') print
以上实例输出结果为:
* *** ***** ******* ***** *** *
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!