
Задан алгоритм обработки строки: 1. Заменить в строке все символы 'A' на подстроку 'AB' и
увеличить N на единицу. Если N=K, то завершить выполнение алгоритма, иначе перейти на шаг 2. 2. Заменить в строке все символы 'B' на подстроку 'AB' и увеличить N на единицу. Если N=K, то завершить выполнение алгоритма, иначе перейти на шаг 3. 3. Заменить в строке все подстроки 'AB' на символ 'A' и увеличить N на единицу. Если N=K, то завершить выполнение алгоритма, иначе перейти на шаг 1. Известно, что перед началом выполнения была строка 'AA', N=0 и K=43. Определите количество символов A в строке, получившейся после завершения алгоритма. В ответе укажите целое число.

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

Ответ:
32768
Объяснение:
Данная незамысловатая функция Excel VBA формирует строку, согласно условию.
Function replstr(str As String, n As Integer) As String
Dim a(1 To 3), b(1 To 3) As String, i, j As Integer
a(1) = "A": a(2) = "B": a(3) = "AB"
b(1) = "AB": b(2) = "AB": b(3) = "A"
For i = 1 To n
j = (i - 1) Mod 3 + 1
str = Replace(str, a(j), b(j))
Next
replstr = str
End Function
Аргументы функции:
1) Исходная строка (а данном случае “AA”)
2) Число операций с исходной строкой
Значение первых 13 операций:
=replstr("AA";1) ABAB
=replstr("AA";2) AABAAB
=replstr("AA";3) AAAA
=replstr("AA";4) ABABABAB
=replstr("AA";5) AABAABAABAAB
=replstr("AA";6) AAAAAAAA
=replstr("AA";7) ABABABABABABABAB
=replstr("AA";8) AABAABAABAABAABAABAABAAB
=replstr("AA";9) AAAAAAAAAAAAAAAA
=replstr("AA";10) ABABABABABABABABABABABABABABABAB
=replstr("AA";11) AABAABAABAABAABAABAABAABAABAABAABAABAABAABAABAAB
=replstr("AA";12) AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
=replstr("AA";13) ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB
Для подсчета символов “A” в строке, используем еще одну функцию:
Function chrcount(str1 As String, str2 As String) As Integer
Dim str() As String
str = Split(str1, str2)
chrcount = UBound(str, 1)
End Function
Аргументы функции:
1) Cтрока
2) Символ (последовательность символов), число которых требуется найти
Например, результатом использования функции =chrcount(replstr("AA";20);"A") в ячейке Excel будет число 256
Используя описанные функции, посчитаем символы “A”в первых 13 строках
Номер операции (i) Число символов “A” в строке
1 2
2 4
3 4
4 4
5 8
6 8
7 8
8 16
9 16
10 16
11 32
12 32
13 32
Как видно из таблицы, число символов в строке образует числовую последовательность 2^1; 2^2; 2^2; 2^2; 2^3; 2^3; 2^3; … 2^([(i-2)/3]+2)
Таким образом, мы получили формулу для вычисления числа символов “A”в строке по номеру операции.
Соответственно, 2^([(43-2)/3]+2) = 32768



Для решения задачи можно проследить выполнение алгоритма в цикле до достижения условия завершения (N = K) и подсчитать количество символов 'A' в полученной строке.
Исходная строка: 'AA' Исходные значения: N = 0, K = 43
Шаг 1: Заменяем символы 'A' на подстроку 'AB' и увеличиваем N на единицу. Получаем строку: 'AAB' N = 1
Шаг 2: Заменяем символы 'B' на подстроку 'AB' и увеличиваем N на единицу. Получаем строку: 'AAAB' N = 2
Шаг 3: Заменяем подстроки 'AB' на символ 'A' и увеличиваем N на единицу. Получаем строку: 'AAA' N = 3
Шаг 1: Заменяем символы 'A' на подстроку 'AB' и увеличиваем N на единицу. Получаем строку: 'AABAB' N = 4
Шаг 2: Заменяем символы 'B' на подстроку 'AB' и увеличиваем N на единицу. Получаем строку: 'AAAABAB' N = 5
Шаг 3: Заменяем подстроки 'AB' на символ 'A' и увеличиваем N на единицу. Получаем строку: 'AAAAA'
Алгоритм завершен, так как N = K = 5.
В полученной строке 'AAAAA' количество символов 'A' равно 5.
Ответ: 5


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili