Vikhyath_11

p10

Jul 26th, 2024
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int x[10];
  5.  
  6. int place(int k, int i) {
  7. for (int j = 1; j < k; j++) {
  8. if (x[j] == i || abs(x[j] - i) == abs(j - k)) {
  9. return 0;
  10. }
  11. }
  12. return 1;
  13. }
  14.  
  15. void printSolution(int n) {
  16. printf("\nSolution is:");
  17. for (int j = 1; j <= n; j++) {
  18. printf("%2d", x[j]);
  19. }
  20. printf("\n");
  21.  
  22. for (int i = 1; i <= n; i++) {
  23. for (int j = 1; j <= n; j++) {
  24. if (x[i] == j) {
  25. printf("Q%d\t", i);
  26. } else {
  27. printf("*\t");
  28. }
  29. }
  30. printf("\n\n");
  31. }
  32. }
  33.  
  34. void nqueens(int k, int n) {
  35. for (int i = 1; i <= n; i++) {
  36. if (place(k, i)) {
  37. x[k] = i;
  38. if (k == n) {
  39. printSolution(n);
  40. } else {
  41. nqueens(k + 1, n);
  42. }
  43. }
  44. }
  45. }
  46.  
  47. int main() {
  48. int n;
  49. printf("Enter the number of queens: ");
  50. scanf("%d", &n);
  51.  
  52. if (n == 0 || n == 2 || n == 3) {
  53. printf("No solutions\n");
  54. } else {
  55. nqueens(1, n);
  56. }
  57.  
  58. return 0;
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment