Решение на Първа задача от Петко Борджуков
Към профила на Петко Борджуков
Резултати
- 6 точки от тестове
- 2 бонус точки
- 8 точки общо
- 8 успешни тест(а)
- 0 неуспешни тест(а)
Код
class Integer
def prime?
return false if abs < 2
(2..Math.sqrt(abs)).all? { |divisor| abs % divisor != 0 }
end
def prime_divisors
(2..abs).select { |divisor| divisor.prime? && abs % divisor == 0 }
end
end
class Range
def fizzbuzz
map do |divident|
next :fizzbuzz if divident % 15 == 0
next :buzz if divident % 5 == 0
next :fizz if divident % 3 == 0
divident
end
end
end
class Hash
def group_values
keys.group_by { |key| self[key] }
end
end
class Array
def densities
map { |element| count element }
end
end
Лог от изпълнението
▸ Покажи логаИстория (15 версии и 4 коментара)
Петко обнови решението на 10.10.2012 13:03 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 10.10.2012 13:04 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 10.10.2012 13:34 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 10.10.2012 13:58 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 10.10.2012 14:02 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 10.10.2012 14:04 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 10.10.2012 14:49 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 10.10.2012 15:52 (преди над 12 години)
▸ Покажи разликите- Много добре!
- Пренапиши го без prime, моля те. Когато пускаме тестовете, няма да има модул
prime
. Допълнително, това беше нещо, което трябваше да попиташ на форумите. Ще го добавя в условието. -
self.
-а ти е излишен - От вътрешната страна на скобите при подаване на блок се оставят интервали
map { |element| count element }
. От вътрешната страна на скобите при хеш не се -{:foo => 1, :bar => 2}
.
Регулярни изрази може ли да ползваме? :)
Петко обнови решението на 10.10.2012 19:15 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 11.10.2012 00:40 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 11.10.2012 00:42 (преди над 12 години)
▸ Покажи разликитеМоже да се изсуши оше повече, ако мънкипачна и метод divides?, но нещо не ми харесва тази идея..
Петко обнови решението на 11.10.2012 13:08 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 11.10.2012 13:32 (преди над 12 години)
▸ Покажи разликитеПетко обнови решението на 12.10.2012 11:49 (преди над 12 години)
▸ Покажи разликитеСупер!
Имаш две бонус точки от нас. Няколко коментара:
-
2.upto(abs)
е по-добре от(2..abs)
. Най-вече заради скобите. -
map
-а не е готин с тозиnext
. Наистина, кода е по-кратък, отколкото сif/else
, но има внезапни излизания от блока. Можеш да мине без тях и кода също щеше да е толкова прост. -
and
иor
над&&
и||