fork download
  1. def factorial(n, total = "#{n}")
  2. n > 1 ? factorial(n - 1,
  3. ")".prepend(total)
  4. .tap { |r|
  5. (n - 1).downto(2) {
  6. [" + ", total].each { |seq|
  7. r.prepend(seq)
  8. }
  9. }
  10. }.prepend("(")) : total
  11. end
  12.  
  13. puts(f = factorial(6))
  14. puts(eval(f))
Success #stdin #stdout 0.01s 7420KB
stdin
Standard input is empty
stdout
(((((6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6)) + ((6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6)) + ((6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6))) + (((6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6)) + ((6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6)) + ((6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6) + (6 + 6 + 6 + 6 + 6)))))
720