Увасилия есть число a, которое он хочет превратить в число b. для этого он может производить два типа операций: умножить имеющееся у него число на 2 (то есть заменить число x числом 2·x); приписать к имеющемуся у него числу цифру 1 справа (то есть заменить число x числом 10·x + 1). вам надо василию получить из числа a число b с описанных операций, либо сообщить, что это невозможно. обратите внимание, что в этой не требуется минимизировать количество операций. достаточно найти любой из способов получить из числа a число b. входные данные в первой строке записаны два целых положительных числа a и b (1 ≤ a < b ≤ 109) — число, которое есть у василия, и число, которое он хочет получить. выходные данные если получить число b из числа a невозможно, выведите «no» (без кавычек). в противном случае в первую строку выведите «yes» (без кавычек). во вторую строку выведите число k — количество чисел в последовательности превращений. в третьей строке выведите последовательность превращений x1, x2, xk, причём: x1 должно быть равно a, xk должно быть равно b, число xi должно быть получено с одной из двух операций из числа xi - 1 (1 < i ≤ k). если ответов несколько, разрешается вывести любой из них.
178
274
Ответы на вопрос:
Данный код делает даже больше - подсчитывает сколькими способами можно перевести начальное число в конечное, и как именно. формат вывода подогнать не сложно # код на ruby 2.2.3p173 def f0(number, log) # n = 10 * number + 1 log += " + 1 " log += "[" + n.to_s + "] " return [n, log] end def f1(number, log) # n = 2 * number log += " * 2 " log += "[" + n.to_s + "] " return [n, log] end def f2(number, log) # n = number + 4 log += " + 4 " log += "[" + n.to_s + "] " return [n, log] end start_num = 14 # начальное число end_num = 28 # конечное число max_steps = end_num op_numbers = 2 count = 0 for steps in 1..max_steps for i in 0..op_numbers**steps-1 s = ("000000000000000000000000000000" + i.to_s(op_numbers))[- num = start_num log = start_num.to_s for k in 0..s.size - 1 num, log = f0(num, log) if s[k] == "0" num, log = f1(num, log) if s[k] == "1" # num, log = f2(num, log) if s[k] == "2" break if num > end_num end # p [num, log, s, steps, i] if num == end_num log += " = " + end_num.to_s count += 1 p log end end end p count
Const n=20; var a,b: array[1..n] of integer; i,j,k,m,c: integer; begin randomize; writeln('исходный массив: '); for i: =1 to n do begin a[i]: =random(51)-25; write(a[i]: 5); end; writeln; j: =0; for i: =1 to n do if a[i]< 0 then begin j: =j+1; b[j]: =a[i]; end; m: =j; for k : = 1 to m-1 do for i : = 1 to m-k do if (b[i]< b[i+1]) then begin c: =b[i]; b[i]: =b[i+1]; b[i+1]: =c; end; writeln(' массив: '); for i: =1 to m do write(b[i]: 5); writeln; j: =0; for i: =1 to n do if a[i]< 0 then begin j: =j+1; a[i]: =b[j]; end; writeln('полученный массив: '); for i: =1 to n do write(a[i]: 5); writeln; end. пример: исходный массив: -15 -8 -6 -13 15 24 5 -2 14 -1 19 -2 -7 -8 -23 20 -2 7 -2 -10 массив: -1 -2 -2 -2 -2 -6 -7 -8 -8 -10 -13 -15 -23 полученный массив: -1 -2 -2 -2 15 24 5 -2 14 -6 19 -7 -8 -8 -10 20 -13 7 -15 -23
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Dimka62122.05.2022 06:34
-
antonkovalenko102.04.2022 20:01
-
wektorwrt1234520.06.2021 10:32
-
MaryOnegina06.01.2021 15:19
-
Виолетта200300320.03.2020 07:57
-
HelpIVadim05.10.2020 07:05
-
1Anabel110.02.2023 16:04
-
tima201127.07.2020 10:08
-
Сара1111111111111106.10.2021 15:59
-
fietisov10.11.2022 10:16
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.