Известно, что исходная строка начиналась с нуля, а далее содержала только единицы, двойки и тройки. После выполнения данной программы получилась строка, содержащая 50 единиц, 12 двоек и 7 троек. Сколько единиц было в исходной строке?
|
1 2 3 4 5 6 7 |
НАЧАЛО ПОКА нашлось (01) ИЛИ нашлось (02) ИЛИ нашлось (03) заменить (01, 2302) заменить (02, 10) заменить (03, 201) КОНЕЦ ПОКА КОНЕЦ |
Ответ:
СтатГрад Вариант ИН2010401 17.03.2021– задание №12
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
for i in range(1, 100): for j in range(1, 100): for k in range(1, 100): t = '0' + '1'*i + '2'*j + '3'*k s = t while '01' in s or '02' in s or '03' in s: s = s.replace('01', '2302', 1) s = s.replace('02', '10', 1) s = s.replace('03', '201', 1) if s.count('1')==50 and s.count('2')==12 and s.count('3')==7: print(i) break |
или
1->50
2->12
3->7
x=01 -> 2302 ->231
y=02 -> 1
z=03 -> 201 -> 22302 -> 2231
x + y + z = 50
x + 2z = 12
x + z = 7
y = 43
z = 5
x = 2
Ответ: 2