Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > cd14cddf3b3ceaf1193157472227757a > files > 559

parrot-doc-1.6.0-1mdv2010.0.i586.rpm

#! ruby

class A
   def fib(n)
       return n if (n < 2)
       return fibA(n - 1) + fibB(n - 2)
   end
   def fibA(n)
       return n if (n < 2)
       return fib(n - 1) + fibB(n - 2)
   end
end

class B < A
   def fibB(n)
       return n if (n < 2)
       return fib(n - 1) + fibA(n - 2)
   end
end

b = B.new

N = Integer( ARGV.shift || 24 )

puts "fib(#{N}) = #{ b.fib(N) }"