fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. struct konik
  5. {
  6. static bool ruszSkoczka(int x, int y, int nr);
  7. };
  8. const int dl_szachownica=5;
  9. int szachownica[dl_szachownica][dl_szachownica]={{0}};
  10.  
  11. bool konik::ruszSkoczka(int x, int y, int nr)
  12. {
  13. const int rx[8] = {1,2,2,1,-1,-2,-2,-1};
  14. const int ry[8] = {-2,-1,1,2,2,1,-1,-2};
  15. int tmp_x, tmp_y;
  16. szachownica[x][y] = nr;
  17. if(nr == dl_szachownica * dl_szachownica)
  18. {
  19. for(int i=0 ; i<dl_szachownica ; i++)
  20. {
  21. for(int j=0 ; j<dl_szachownica ; j++)
  22. cout << szachownica[j][i] << " ";
  23. cout << endl;
  24. }
  25. return 1;
  26. }
  27. else
  28. {
  29. for(int i = 0; i < 8; i++)
  30. {
  31. tmp_x = x + rx[i];
  32. tmp_y = y + ry[i];
  33. if(tmp_x >= 0 && tmp_x < dl_szachownica && tmp_y >= 0 && tmp_y <= dl_szachownica && szachownica[tmp_x][tmp_y] == 0)
  34. {
  35. if(ruszSkoczka(tmp_x, tmp_y, nr+1) == true)
  36. {
  37. return true;
  38. }
  39. }
  40. }
  41. szachownica[x][y] = 0;
  42. }
  43. return false;
  44. }
  45.  
  46. int main()
  47. {
  48. konik::ruszSkoczka(0,0,1);
  49. return 0;
  50. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
1 12 23 6 3 
22 17 2 13 8 
11 24 9 4 19 
16 21 18 7 14 
25 10 15 20 5