# Код на ruby 2.2.3p173 def zadanie(jump1, jump2) min = jump1 for i in 1..1000 next if (i*jump1)%jump2 == 0 or (i*jump2)%jump1 == 0
if min > (i*jump1)%jump2 min = (i*jump1)%jump2 p [min, "#{i} * #{jump1} - #{i*jump1/jump2} * #{jump2}"] end
if min > (i*jump2)%jump1 min = (i*jump2)%jump1 p [min, "#{i} * #{jump2} - #{i*jump2/jump1} * #{jump1}"] end end return min end # # Примеры применения p zadanie(33, 55)
Деревья строятся просто: добавляем узел – операцию, которая выполняется последней, и к ней два потомка – аргументы этой операции. Например, для выражения a + b операцией будет "+", а аргументами – a и b. Затем в таком же виде представляем аргументы этой операции, пока все аргументы не будут содержать выражений. Построенные деревья во вложении.
Префиксная форма записи заключается в том, что сначала записывается операция, потом префиксная запись её первого аргумента, потом второго аргумента. Это соответствует обходу дерева сверху вниз и слева направо, записываем, что сверху, потом идем вниз. Вот что получится в итоге: а) * + a b + c * 2 d б) + * - * 2 a * 3 d c * 2 b в) - * 3 a * + * 2 b c d
В постфиксной записи, наоборот, записываются сначала аргументы, потом операция. Это соответствует обходу дерева снизу-вверх. а) a b + c 2 d * + * б) 2 a * 3 d * - c * 2 b * + в) 3 a * 2 b * c + d * -
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку