RosettaCodeData/Task/Zeckendorf-number-representation/Ruby/zeckendorf-number-representation-2.rb
2014-01-17 05:34:36 +00:00

18 lines
296 B
Ruby

def zeckendorf(n)
return 0 if n.zero?
fib = [1,2]
fib << fib[-2] + fib[-1] while fib[-1] < n
dig = ""
fib.reverse_each do |f|
if f <= n
dig, n = dig + "1", n - f
else
dig += "0"
end
end
dig.to_i
end
for i in 0..20
puts '%3d: %8d' % [i, zeckendorf(i)]
end