Tävlingsprogrammering/Introduktion/Lösningar i Ruby

Från Wikibooks

Här finns lösningar till introduktionsuppgifterna i Ruby

Talföljdsproblemet

 #!/usr/bin/env ruby
 def find(n, p, k, d) 
   puts p + k
   find(n + 1, p + k, k + d, d) if n < 9
 end
 print "Första talet ? "
 i = gets.to_i
 print "Andra talet ? "
 j = gets.to_i
 print "Tredje talet ? "
 l = gets.to_i
 k = j - i
 d = l - j - k 
 print "Talföljden"
 puts i
 find(1, i, k, d)

Klockproblemet

#!/usr/bin/env ruby
print "Vinkel ? "
vinkel = gets.to_i 
for h in 0 ... 12
  for m in 0 ... 59
    printf("Klockan är %0.0f:%02.0f}", h, m) if (m * 55 - h * 300 + 3600) == vinkel
    exit if (m * 55 - h * 300 + 3600) == vinkel
  end
end

Plankproblemet

#!/usr/bin/env ruby
def recurse(r)
  for p in 1 ... 4
    if r + p == @l
      @count += 1
    elsif r+p > @l
    else
      recurse r + p
    end
  end
end
print "Plankans längd ? "
@l = gets.to_i
@count = 0
recurse 0
puts "Det finns #{@count} olika sätt"

Ta dessa som exempel, har inte testkört dem mot mer än de uppgifter som ges i exempeln