#include #include int numbers[10] = { 0 }; int cube[3][3] = { 0 }; void output() { int i = 0, j = 0; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("%d", cube[i][j]); printf(" "); } printf("\n"); } printf("\n"); } void pickNext(int row, int col) { int i = 0; if (row == 2 && col == 2) { for (int i = 1; i <= 9; i++) { if (numbers[i] == false) { cube[2][2] = i; break; } } if ((cube[0][0] + cube[0][1] + cube[0][2] == 15) && (cube[1][0] + cube[1][1] + cube[1][2] == 15) && (cube[0][0] + cube[1][0] + cube[2][0] == 15) && (cube[0][1] + cube[1][1] + cube[2][1] == 15) && (cube[0][0] + cube[1][1] + cube[2][2] == 15) && (cube[0][2] + cube[1][1] + cube[2][0] == 15)) { output(); } } for (i = 1; i <= 9; i++) { if (numbers[i] == false) { numbers[i] = true; cube[row][col] = i; if (col == 2) { pickNext(row + 1, 0); } else { pickNext(row, col + 1); } numbers[i] = false; } } } int main() { pickNext(0, 0); return 0; }