Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. int x[1000],c=0;
  5.  
  6. int Algo_place(int k);
  7. void result(int n);
  8. void queen(int n);
  9.  
  10. int main()
  11. {
  12. int i,n;
  13.  
  14. printf("Queens??\n");
  15. scanf("%d",&n);
  16. queen(n);
  17.  
  18. printf("\nPossible solution is %d\n\n",c);
  19.  
  20. return 0;
  21. }
  22. int Algo_place(int k)
  23. {
  24. int j;
  25. for(j=1;j<k;j++)
  26. {
  27. if((x[j]==x[k])||((fabs(x[j]-x[k])==fabs(j-k))))
  28. return 0;
  29. }
  30. return 1;
  31. }
  32.  
  33. void result(int n)
  34. {
  35. int i,j;
  36. c++;
  37. printf("\n\nAnswer:%d\n",c);
  38. for(i=1;i<=n;i++)
  39. {
  40. for(j=1;j<=n;j++)
  41. {
  42. if(x[i]==j)
  43. printf("Q ");
  44. else
  45. printf(". ");
  46. }
  47. printf("\n");
  48. }
  49. }
  50.  
  51. void queen(int n)
  52. {
  53. int k=1;
  54. x[k]=0;
  55. while(k!=0)
  56. {
  57. x[k]=x[k]+1;
  58. while((x[k]<=n)&&!Algo_place(k))
  59. x[k]++;
  60. if(x[k]<=n)
  61. {
  62. if(k==n)
  63. result(n);
  64. else
  65. {
  66. k++;
  67. x[k]=0;
  68. }
  69. }
  70. else
  71. k--;
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement