На столе лежат 7 спичек. Белла и Пётр играют по очереди: берут из кучки 1, 2 или 3 спички. Выиграет тот, после чьего хода на столе ничего не останется. Белла делает первый ход и очень хочет выиграть. Сколько спичек она должна взять первым ходом, чтобы точно выиграть? Напишите в ответе только число.
1) 000000, (0)
2) 000001, (1)
3) 000002, (2)
4) 000010, (3)
...
301) ... (300)
а это получаются числа записанные в троичной системе счисления.
На 301 месте будет стоять число равное в десятичной системе 300
Переведем число 300 из десятичной системы в троичную, получим:
300 : 3 = 100 - остаток 0
100 : 3 = 33 - остаток 1
33 : 3 = 11 - остаток 0
11 : 3 = 3 - остаток 2
3 : 3 = 1 - остаток 0
1 : 3 = 0 - остаток 1
т.е. получаем число 102010 в троичной системе счисления.
Подставив обратно наши буквы получим ответ: ЕАУАУА.
for - цикл с известным количеством шагов (итераций)
чтобы воспользоваться for нужно знать точно количество шагов (интераций)
например, заполняем массив arr из 10 единиц типа int
for(i = 0; i < 10; i++) arr[i] = 0; // точно знаем что 10 элементов и делаем 10 интераций
если же нам не известно количество интераций цикла, например организовать ввод переменной до тех пор, пока пользователь не введет 0
сколько будет интераций - неизвестно и зависит сугубо от пользователя
int num;
do
{
cin >> num // вводим цифру
}
while(num != 0); // повторяем ввод, пока цифра не равна 0
( do while - разновидность while, в которой условие проверяется не перед первой интерацией, а после нее )
примеры представлены на c++, но в принципе и так понятно