Я успешно решил проблему, где я бы определил, можно ли записать число в виде суммы двух квадратов.Поиск, если число является суммой из двух степеней.
25 => [5,0], [3,4]
5**2+ 0**2 = 25 and 3**2 + 4**2 = 25
Вот как я решил, что
def power_pairs(num)
a = (0..100).to_a
a.combination(2).select{|x|(x[0] ** 2) + (x[1] ** 2) == num}
end
power_pairs(40)
=> [[2,6]]
Я хочу изменить этот метод, чтобы определить, является ли число прошло в самом деле количество энергии.
Число мощности может быть представлено в виде суммы в 2 степени.
27 = 0**2 + 3**3
28 = 1**2 + 3**3
Как исправить этот метод
Вы заявили своей цели, но в чем проблема? У вас есть четкое представление о том, как решить эту проблему, чтобы решить начальную проблему. Что мешает вам понять это? –
Ваш код работает, и вы хотите знать, как его изменить. Stack Exchange предназначен для отладки/исправления проблем с кодированием ... eeehhh ... это действительно граничит с вопросом, который следует задать на [codereview.se], где вы можете спросить «что лучше всего делать ...» –
Вы хотите ограничить его неотрицательными числами? (Пожалуйста, «да».) Например, если число «8», «4 ** 2 + (-2) *** 3' разрешено? –