fork download
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6. int board[8][8];
  7.  
  8. int chk(int c, int r)
  9. {
  10. for(int i = 0; i < c; ++i)
  11. {
  12. // Проверка горизонтали
  13. if(board[i][r]) return 0;
  14. // Проверка диагонали
  15. if (r-c+i>=0) if (board[i][r-c+i]) return 0;
  16. if (r+c-i< 8) if (board[i][r+c-i]) return 0;
  17. }
  18. return 1;
  19. }
  20.  
  21. int vert(int i) // Установка i-й вертикали
  22. {
  23. if (i == 8) return 1;
  24. for(int j = 0; j < 8; ++j)
  25. if (chk(i,j))
  26. {
  27. board[i][j] = 1;
  28. if (vert(i+1)) return 1;
  29. board[i][j] = 0;
  30. }
  31. return 0;
  32. }
  33.  
  34. int main(int argc, char * argv[])
  35. {
  36. vert(0);
  37. for(int i = 0; i< 8; ++i)
  38. {
  39. for(int j = 0; j< 8; ++j)
  40. cout << (board[i][j] ? '#' : '.');
  41. cout << endl;
  42. }
  43. }
  44.  
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
#.......
....#...
.......#
.....#..
..#.....
......#.
.#......
...#....