# w Ruby 1.8.7 już jest taka metoda
class Fixnum
def even?
self.divmod(2)[1] == 0
end
end
def em(a, b)
result = 0
while a>1 do
a = a / 2
b = b * 2
if !a.even?
result += b
end
end
result
end
Metoda em mnoży dwie liczby wg algorytmu, metoda even? jest konieczna tylko w przypadku uruchamiania w Ruby 1.8.6. Powyższa implementacja będzie zwracać zły wynik w przypadku mnożenia przez 1, :) ale to jest chyba dosyć "trywialne" zadanie, do którego nie trzeba wykorzystywać żadnych algorytmów.
Brak komentarzy:
Prześlij komentarz