Python 練習例18

Python 100例

問題:s=a+aa+aaa+aaaa+aa...a の値を求めます。ここで a は1桁の数字です。例えば 2+22+222+2222+22222(このとき合計5つの数が加算されます)。加算する数の個数はキーボードで制御されます。

プログラム分析:重要なのは、各項の値を計算することです。

プログラムのソースコード:

例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- Tn = 0 Sn = [] n = int(raw_input('n = ')) a = int(raw_input('a = ')) 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

例(Python 3.0+)

#!/usr/bin/python from functools import reduce Tn = 0 Sn = [] n = int(input('n = ')) a = int(input('a = ')) 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 = 4
a = 4
4
44
444
4444
计算和为: 4936

Python 100例

その他の拡張