fork(8) download
  1. #include<stdio.h>
  2. #include<math.h>
  3. int a[20];
  4. bool Ok(int x2,int y2){
  5. //kiểm tra cách đặt có thỏa mãn không
  6. for(int i = 1; i < x2 ;i++)
  7. if(a[i] == y2 || abs(i-x2) == abs(a[i] - y2) )
  8. return false;
  9. //Nếu kiểm tra hết các trường hợp vẫn không sai thì trả về true
  10. return true;
  11. }
  12.  
  13. void Xuat(int n){
  14. //in ra một kết quả
  15. for(int i=1;i<=n;i++)
  16. printf(" %d",a[i]);
  17. printf("\n");
  18. }
  19.  
  20. void Try(int i,int n){
  21. for(int j = 1;j<=n;j++){
  22. // thử đặt quân hậu vào các cột từ 1 đến n
  23. if(Ok(i,j)){
  24. //nếu cách đặt này thỏa mãn thì lưu lại vị trí
  25. a[i] = j;
  26. //nếu đặt xong quân hậu thứ n thì xuất ra một kết quả
  27. if(i==n) Xuat(n);
  28. Try(i+1,n);
  29. }
  30. }
  31. }
  32.  
  33. int main(){
  34. int n = 8;// ở đây mình cho bài toán là 8 quân hậu trên bàn 8*8
  35. Try(1,n);
  36. return 0;
  37. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
 1 5 8 6 3 7 2 4
 1 6 8 3 7 4 2 5
 1 7 4 6 8 2 5 3
 1 7 5 8 2 4 6 3
 2 4 6 8 3 1 7 5
 2 5 7 1 3 8 6 4
 2 5 7 4 1 8 6 3
 2 6 1 7 4 8 3 5
 2 6 8 3 1 4 7 5
 2 7 3 6 8 5 1 4
 2 7 5 8 1 4 6 3
 2 8 6 1 3 5 7 4
 3 1 7 5 8 2 4 6
 3 5 2 8 1 7 4 6
 3 5 2 8 6 4 7 1
 3 5 7 1 4 2 8 6
 3 5 8 4 1 7 2 6
 3 6 2 5 8 1 7 4
 3 6 2 7 1 4 8 5
 3 6 2 7 5 1 8 4
 3 6 4 1 8 5 7 2
 3 6 4 2 8 5 7 1
 3 6 8 1 4 7 5 2
 3 6 8 1 5 7 2 4
 3 6 8 2 4 1 7 5
 3 7 2 8 5 1 4 6
 3 7 2 8 6 4 1 5
 3 8 4 7 1 6 2 5
 4 1 5 8 2 7 3 6
 4 1 5 8 6 3 7 2
 4 2 5 8 6 1 3 7
 4 2 7 3 6 8 1 5
 4 2 7 3 6 8 5 1
 4 2 7 5 1 8 6 3
 4 2 8 5 7 1 3 6
 4 2 8 6 1 3 5 7
 4 6 1 5 2 8 3 7
 4 6 8 2 7 1 3 5
 4 6 8 3 1 7 5 2
 4 7 1 8 5 2 6 3
 4 7 3 8 2 5 1 6
 4 7 5 2 6 1 3 8
 4 7 5 3 1 6 8 2
 4 8 1 3 6 2 7 5
 4 8 1 5 7 2 6 3
 4 8 5 3 1 7 2 6
 5 1 4 6 8 2 7 3
 5 1 8 4 2 7 3 6
 5 1 8 6 3 7 2 4
 5 2 4 6 8 3 1 7
 5 2 4 7 3 8 6 1
 5 2 6 1 7 4 8 3
 5 2 8 1 4 7 3 6
 5 3 1 6 8 2 4 7
 5 3 1 7 2 8 6 4
 5 3 8 4 7 1 6 2
 5 7 1 3 8 6 4 2
 5 7 1 4 2 8 6 3
 5 7 2 4 8 1 3 6
 5 7 2 6 3 1 4 8
 5 7 2 6 3 1 8 4
 5 7 4 1 3 8 6 2
 5 8 4 1 3 6 2 7
 5 8 4 1 7 2 6 3
 6 1 5 2 8 3 7 4
 6 2 7 1 3 5 8 4
 6 2 7 1 4 8 5 3
 6 3 1 7 5 8 2 4
 6 3 1 8 4 2 7 5
 6 3 1 8 5 2 4 7
 6 3 5 7 1 4 2 8
 6 3 5 8 1 4 2 7
 6 3 7 2 4 8 1 5
 6 3 7 2 8 5 1 4
 6 3 7 4 1 8 2 5
 6 4 1 5 8 2 7 3
 6 4 2 8 5 7 1 3
 6 4 7 1 3 5 2 8
 6 4 7 1 8 2 5 3
 6 8 2 4 1 7 5 3
 7 1 3 8 6 4 2 5
 7 2 4 1 8 5 3 6
 7 2 6 3 1 4 8 5
 7 3 1 6 8 5 2 4
 7 3 8 2 5 1 6 4
 7 4 2 5 8 1 3 6
 7 4 2 8 6 1 3 5
 7 5 3 1 6 8 2 4
 8 2 4 1 7 5 3 6
 8 2 5 3 1 7 4 6
 8 3 1 6 2 5 7 4
 8 4 1 3 6 2 7 5