あっ,はい‥‥‥.
という感じでもとめるのですが,さぁエレガントに考えていきましょう.10!=10*9*8*7*6*5*4*3*2*1
ここから分かるように0!のときは1で,それ以外は例えば10!ならば10*9!を求めればいいということが分かります.
10!=10*9!=10*9*8!
=10*9*8*7!
=10*9*8*7*6!
=10*9*8*7*6*5!
=10*9*8*7*6*5*4!
=10*9*8*7*6*5*4*3!
=10*9*8*7*6*5*4*3*2!
=10*9*8*7*6*5*4*3*2*1!
=10*9*8*7*6*5*4*3*2*1*0!
=10*9*8*7*6*5*4*3*2*1*1
=3628800
100!とか求めるにはこれだと大変.コンピュータに任せましょう.
fact 0 = 1
fact n = n*fact(n-1)
main = print $ fact 100
3行でかけるなんて美しい.これが分かってもらえるのがうれしい今日このごろです.
0 件のコメント:
コメントを投稿