diff options
Diffstat (limited to 'sample/fact.rb')
-rw-r--r-- | sample/fact.rb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sample/fact.rb b/sample/fact.rb index 49678bc9d0..1462a6923a 100644 --- a/sample/fact.rb +++ b/sample/fact.rb @@ -1,8 +1,10 @@ def fact(n) - if n == 0 - 1 - else - n * fact(n-1) + return 1 if n == 0 + f = 1 + while n>0 + f *= n + n -= 1 end + return f end print fact(ARGV[0].to_i), "\n" |