>>28
O(n) でいいんじゃないの?
1) n! を計算するのに O(n) (for 文で 1 から n までを掛け合わせるだけ)
2) (n - r)! を計算するのに O(n) (手順は上と同じ。最大でも r = 0 の時で O(n))

トータルで O(n)

2) の (n - r)! の計算を先にやって覚えておいて、1) を計算するのに残りの n から n - r + 1 までの掛け算だけをやればもうちょっと手数は削減できるかも。結局 O(n) だけど。