Project Eueler: problem20

問題

n! means n (n 1) ... 3 2 1

For example, 10! = 10 9 ... 3 2 1 = 3628800,
and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.

Find the sum of the digits in the number 100!

回答

def kai(n)
  return n if n == 1
  return n * kai(n-1)
end

def kai_sum(n)
  t = kai(n).to_s.split(//).map{|x| x}
  return t.inject(0){|sum,x| sum + x.to_i}
end

p kai_sum(100)