Есть ответ 👍

1. некоторый алгоритм из одного числа получает новое число следующим образом. сначала записывается исходное число, а затем к нему приписываются цифры исходного числа в обратном порядке, а в конец числа дописывается столько единиц, сколько нечётных цифр в числе. получившееся число является результатом работы алгоритма. дано число 33. сколько единиц будет содержаться в итоговом числе, если к исходному числу применить описанный алгоритм трижды (т. е. применить алгоритм к данному числу, а затем к результату вновь применить алгоритм и т.

198
203
Посмотреть ответы 2

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

daliiss
4,8(92 оценок)

1) 33 ⇒ 333311

2) 333311 ⇒ 333311113333111111

3) 333311113333111111 ⇒ 333311113333111111111111333311113333

заметим, что в исходном числе все цифры нечетные и после любого приписывания все цифры будут нечетными (т.к. 1 - нечетна)

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

соответственно после третьего применения алгоритма длина числа будет: 2 * 3 * 3 * 3 = 54

выясним сколько среди них будет единиц. при каждом применении алгоритма количество троек будет увеличиваться в два раза (тройки самого числа и перевернутого).

значит троек в конце будет: 2 * 2 * 2 * 2 = 16

соответственно единиц будет 54 - 16 = 38

murarr
4,8(25 оценок)

//решение почти правильное.

//ошибка только в цикле for i : = 1 to n do

//цикл должен проверять до n - 1, т.к. в массиве из n

//элементов пар соседних элементов не может быть

//больше n - 1, например массив из 3 чисел

//1 2 3; пары : 1 2 и 2 3.

const

  n = 20;

var

  a: array[1..n]of integer;

  i, j, k: integer;

begin

  k : = 0;

  for i : = 1 to n do

    readln(a[i]);

  for i : = 1 to n - 1 do

  begin

    if (a[i] mod 2 = 0) and (a[i + 1] mod 2 = 0) then k : = k + 1;

  end;

  writeln(k);

end.

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