Лови решение на с++ с do while
Объяснение:
1 задача, ну тут все элементарно, думаю пояснения не нужны:
#include <iostream>
using namespace std;
int main() {
int a = 1, num;
cin >> num;
do {
cout << a << " ";
a += 2;
} while (a < num * 2);
}
2 задача (num++ делаю только для удобства, но можно везде использовать num + 1, при этом в условии надо написать a <= num):
#include <iostream>
using namespace std;
int main() {
int a = 1, num;
cin >> num;
num++;
do {
cout << a << " + " << num - a << " = " << num << endl;
a++;
} while (a < num);
}
Дерево игры - в прилагаемом файле. У игрока, делающего ход первым (Пети) есть выигрышная стратегия: первый ход должен быть +3 (в куче получится 13 камней). В этом случае при ходе второго игрока (Вани) +3 (в куче 16 камней) первый (Петя) выигрывает ходом *2 (в куче 32 камня); при ходе второго игрока (Вани) *2 (в куче 26 камней) первый (Петя) также выигрывает ходом *2 (в куче 52 камня). Второй игрок (Ваня) может выиграть только в случае, если первый (Петя) сделает начальный ход *2 (в куче 20 камней), следующий ход (Вани) *2 (в куче 40 камней) приводит к выигрышу.