Python 練習例25
問題:1+2!+3!+...+20! の和を求めよ。
プログラム分析:このプログラムは、加算の累積を乗算の累積に変えただけのものです。
方法1
#!/usr/bin/python
# -*- coding: UTF-8 -*-
n = 0
s = 0
t = 1
for n in range(1,21):
t *= n
s += t
print ('1! + 2! + 3! + ... + 20! = %d' % s)
方法2
#!/usr/bin/python
# -*- coding: UTF-8 -*-
s = 0
l = range(1,21)
def op(x):
r = 1
for i in range(1,x + 1):
r *= i
return r
s = sum(map(op,l))
print ('1! + 2! + 3! + ... + 20! = %d' % s)
上記の実行結果は次のとおりです:
1! + 2! + 3! + ... + 20! = 2561327494111820313その他の拡張