М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
vladdobryj071
vladdobryj071
29.07.2021 12:12 •  Информатика

Увасилия есть число 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). если ответов несколько, разрешается вывести любой из них.

👇
Ответ:
MashaKun
MashaKun
29.07.2021
Данный код делает даже больше - подсчитывает сколькими можно перевести начальное число в конечное, и как именно.  Формат вывода подогнать не сложно

# Код на 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))[-steps..-1]
      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
4,5(38 оценок)
Открыть все ответы
Ответ:
Kissi111
Kissi111
29.07.2021
Var f:file of integer;   
 a,i,k,n:integer;
begin
randomize;
assign(f,'file');
rewrite(f);
repeat
write('Четное количество элементов: ');
readln(n);
until(n>1) and (n mod 2=0);
for i:=1 to n do
 begin 
 a:=random(100); 
 write(f,a); 
end;
writeln('Содержание исходного файла:');
reset(f);
while not eof(f) do
 begin 
 read(f,a); 
write(a,' ');
 end;
close(f);
writeln;
reset(f);
seek(f,filesize(f)div 2);
truncate(f);
writeln('Содержание измененного файла:');
reset(f);
while not eof(f) do
 begin
  read(f,a); 
 write(a,' '); 
end;
close(f);
readln
end.
4,4(18 оценок)
Ответ:
natalia22082000
natalia22082000
29.07.2021
Var
  h1,h2:integer;
  n1,n2:string;
begin
  Write('Введите имя первой девочки: '); Readln(n1);
  Write('Введите рост первой девочки: '); Readln(h1);
  Write('Введите имя второй девочки: '); Readln(n2);
  Write('Введите рост второй девочки: '); Readln(h2);
  if h1>h2 then Writeln(n1,' выше, чем ',n2)
  else if h2>h1 then Writeln(n2,' выше, чем ',n1)
  else Writeln(n1,' и ',n2,' одного роста')
end.

Тестовое решение:
Введите имя первой девочки: Наташа
Введите рост первой девочки: 163
Введите имя второй девочки: Даша
Введите рост второй девочки: 167
Даша выше, чем Наташа

Блок-схема дана во вложении. Блоки ввода вывода упрощены в связи с невозможностью (и ненужностью) точно отобразить вид ввода и вывода.
4,6(30 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ