Ruby: Пары без функций

Ruby: Составные данные
Обновлено: 08 сент., 18:43
16
Студентов
100%
Завершения

Пары неотрицательных целых чисел можно представить числами и арифметическими операциями. Можно считать, что пара чисел a и b – это 2^a * 3^b.

Функции car() и cdr() при этом будут просто вычислять значения a и b (кратности двойки и тройки, соответственно), раскладывая аргумент на множители.

Например, имея пару 5, 8 в виде числа 209952 (2^5 * 3^8), можно получить первый элемент пары, разложив число на множители и вычислив факторизацию для числа 2, а второй элемент пары – разложив число на множители и вычислив факторизацию для числа 3.

pairs.rb

Реализуйте и экспортируйте следующие функции в соответствии с алгоритмом выше:

  • cons()
  • car()
  • cdr()

Пример:

pair = cons(5, 8) # 2^5 * 3^8 = 209952
car(pair) # 5
cdr(pair) # 8

Подсказки

  • Пара – это число, поэтому, чтобы получить из него исходные значения a и b, нужно раскладывать число на множители.

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов