Проще всего решить данную задачу через программу на питоне:
s = '5' * 72
while '333' in s or '555' in s:
if '555' in s:
s = s.replace('555', '3', 1)
else:
s = s.replace('333', '5', 1)
print(s)
Но, если делать вручную, тогда так:
Возьмём 10 символов из строки, состоящей из 72 идущих подряд цифр 5.
5555555555
Читаем программу: ЕСЛИ нашлось (555) ТО заменить (555, 3)
555 555 555 5
3 3 3 5
Стоит заметить, что у нас получилась строка 3335, но не спешим её заменять на 5, ведь по условию нужно найти все 5 и только если их нет, переходить к else (ИНАЧЕ заменить (333, 5))
Исходя из этого, заменим всю строку по 1 условию (ЕСЛИ нашлось (555) ТО заменить (555, 3)), т.е. просто поделим всё количество на 3.
72 / 3 = 24 без остатка (Это значит, что все пятёрки заменились на тройки)
Итак, остались 24 тройки, запишем 10 символов и посмотрим, что будет:
3333333333
333 333 333 3
5 5 5 3
3 3
Мы видим, что из 9 троек получилась ровно 1, поделим 24 на 9
У нас получится 2 и ещё 6 в остатке, т.е. выглядеть строка будет так:
ответ: 5533
Проще всего решить данную задачу через программу на питоне:
s = '5' * 72
while '333' in s or '555' in s:
if '555' in s:
s = s.replace('555', '3', 1)
else:
s = s.replace('333', '5', 1)
print(s)
Но, если делать вручную, тогда так:
Возьмём 10 символов из строки, состоящей из 72 идущих подряд цифр 5.
5555555555
Читаем программу: ЕСЛИ нашлось (555) ТО заменить (555, 3)
555 555 555 5
3 3 3 5
Стоит заметить, что у нас получилась строка 3335, но не спешим её заменять на 5, ведь по условию нужно найти все 5 и только если их нет, переходить к else (ИНАЧЕ заменить (333, 5))
Исходя из этого, заменим всю строку по 1 условию (ЕСЛИ нашлось (555) ТО заменить (555, 3)), т.е. просто поделим всё количество на 3.
72 / 3 = 24 без остатка (Это значит, что все пятёрки заменились на тройки)
Итак, остались 24 тройки, запишем 10 символов и посмотрим, что будет:
3333333333
333 333 333 3
5 5 5 3
3 3
Мы видим, что из 9 троек получилась ровно 1, поделим 24 на 9
У нас получится 2 и ещё 6 в остатке, т.е. выглядеть строка будет так:
33 333333
Заменяем на "5"
333 333 33
5 5 33
Это и есть ответ.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int N, line[10] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
cin >> N;
for (int i = 0; i < pow(2, N); i++) {
for (int j = 0; j < N; j++)
cout << line[j];
if(i!=pow(2, N)-1)
cout << endl;
for (int j = N - 1; j >= 0; j--) {
if (line[j] == 0)
line[j] = 1;
else {
line[j] = 0;
break;
}
}
}
}