Решение на Първа задача от Изабела Недялкова

Обратно към всички решения

Към профила на Изабела Недялкова

Резултати

  • 6 точки от тестове
  • 1 бонус точка
  • 7 точки общо
  • 8 успешни тест(а)
  • 0 неуспешни тест(а)

Код

class Integer
def is_prime?
2.upto(self-1) { |num| return false if self % num == 0 }
true
end
def prime_divisors
pr_divisors = []
2.upto(abs) do |num|
if abs % num == 0 && num.is_prime?
pr_divisors << num
end
end
pr_divisors
end
end
class Range
def fizzbuzz
collect do |elem|
if elem % 15 == 0 then :fizzbuzz
elsif elem % 3 == 0 then :fizz
elsif elem % 5 == 0 then :buzz
else elem
end
end
end
end
class Hash
def group_values
groups = Hash.new { |hash, key| hash[key] = [] }
each {|key, value| groups[value] << key}
groups
end
end
class Array
def densities
collect { |elem| count(elem) }
end
end

Лог от изпълнението

........

Finished in 0.00715 seconds
8 examples, 0 failures

История (1 версия и 3 коментара)

Изабела обнови решението на 15.10.2012 15:40 (преди около 12 години)

+class Integer
+ def is_prime?
+ 2.upto(self-1) { |num| return false if self % num == 0 }
+ true
+ end
+
+ def prime_divisors
+ pr_divisors = []
+ 2.upto(abs) do |num|
+ if abs % num == 0 && num.is_prime?
+ pr_divisors << num
+ end
+ end
+ pr_divisors
+ end
+end
+
+class Range
+ def fizzbuzz
+ collect do |elem|
+ if elem % 15 == 0 then :fizzbuzz
+ elsif elem % 3 == 0 then :fizz
+ elsif elem % 5 == 0 then :buzz
+ else elem
+ end
+ end
+ end
+end
+
+class Hash
+ def group_values
+ groups = Hash.new { |hash, key| hash[key] = [] }
+ each {|key, value| groups[value] << key}
+ groups
+ end
+end
+
+class Array
+ def densities
+ collect { |elem| count(elem) }
+ end
+end

Приятно решение с малко забележки:

  • prime? би било по-добро име от is_prime?. Това е една от причините ? да е позволен като последен символ на имена на методи.
  • pr_devisors не звучи добре, избягвай такива съгращения. Мисля че си съкратила заради името на метода (prime_divisors). Дори просто result върши работа в такива случаи, избягвай съкращенията като цяло.
  • Оставяй по една шпация след отваренето и преди затварянето на едноредови блокове. Изпуснала си един такъв :)
  • self-1 -> self - 1 :)
  • Предпочитай and пред &&.

В крайна сметка, на мен решението ти ми харесва. Погледни забележките и ги имай в предвид за следващите домашни.