Есть ответ 👍

Увасилия есть число 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
Посмотреть ответы 2

Ответы на вопрос:


Данный код делает даже больше - подсчитывает сколькими способами можно перевести начальное число в конечное, и как именно.  формат вывода подогнать не сложно # код на 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

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS