Дерево игры - в прилагаемом файле. У игрока, делающего ход первым (Пети) есть выигрышная стратегия: первый ход должен быть +3 (в куче получится 13 камней). В этом случае при ходе второго игрока (Вани) +3 (в куче 16 камней) первый (Петя) выигрывает ходом *2 (в куче 32 камня); при ходе второго игрока (Вани) *2 (в куче 26 камней) первый (Петя) также выигрывает ходом *2 (в куче 52 камня). Второй игрок (Ваня) может выиграть только в случае, если первый (Петя) сделает начальный ход *2 (в куче 20 камней), следующий ход (Вани) *2 (в куче 40 камней) приводит к выигрышу.
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int a[5][5];
int i, j, s, p;
srand(time(NULL));
for (i = 0; i <= 4; i++) {
cout << "\n";
for (j = 0; j <= 4; j++) {
a[i][j] = ((double)rand() / (RAND_MAX + 1) * 5) + 1;
cout << a[i][j] << ' ';
}
}
s = 0;
for (i = 0, j = 4; i < 5; i++, j--) // правая диагональ
s += a[i][j];
p = 1;
for (i = 0; i < 5; i++) // левая диагональ
p *= a[i][i];
cout << "\n\nСумма правой диагонали = " << s << "\nПроизведение левой диагонали = " << p << "\n";
}