Решите пожалуйста задание по информатике, все прикрепил ниже С решением

+595 голосов
4.7m просмотров

Решите пожалуйста задание по информатике, все прикрепил ниже С решением


image
image

Информатика (74 баллов) | 4.7m просмотров
Дан 1 ответ
+114 голосов

Ответ:

22888

Объяснение:

Проанализируем алгоритм:

Программа содержит цикл с предусловием: «нашлось (2222)» или «нашлось (8888)». Значит, тело цикла будет выполняться, если окажется истинным хотя бы одна из них, в противном случае программа останавливается.

Рассмотрим тело цикла:

Если в строке есть подстрока 2222, то происходит ее замена на 8. Иначе (если в строке нет 2222), но есть подстрока 8888, то она заменяется на 2.

Исходная строка имеет 146 идущих подряд цифр 8 (888…8). Значит, условие цикла истинно (нашлось (8888)).

Так как в исходной строке нет подстроки 2222, то выполняется ветвь ИНАЧЕ и происходит замена подстроки 8888 на 2. Таким образом, после одного шага цикла строка будет иметь следующий вид: 2888…8 (цифр 8 теперь на 4 меньше, то есть 142).

Очевидно, после ещё трёх шагов цикла строка примет следующий вид: 2222888…8 (цифр 8 теперь ещё на 12 (4*3) меньше, то есть 130).

На следующем шаге при проверке условия «нашлось (2222)» получаем истину, поэтому выполняется ветвь ЕСЛИ и подстрока 2222 заменяется на 8 (цифр 8 теперь 131).

Не трудно заметить, что за 5 шагов в строке шестнадцать цифр 8 заменяются на одну 8 (т. е. удаляется 15 (146-131) восьмерок).

Выясним, сколько раз в исходной строке встретится по 15 восьмерок и какой будет строка после проведенных преобразований:

146 ÷ 15 = 9 (остаток 11).

Значит, строка имеет следующий вид: 8888 8888 888 (11 восьмерок).

В результате двух последних шагов цикла подстроки 8888 заменяются на двойки и окончательно получаем строку 22888.

(3.7k баллов)