fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. int n,m;
  6. int a[20];
  7.  
  8. int print()
  9. { int i;
  10. m++;printf("m= %d\n",m);
  11. for(i=1;i<=n;i++)
  12. printf("a[%d] = %d\n",i,a[i]);
  13. }
  14.  
  15. int check(int v,int k)
  16. {
  17. int i;
  18. for(i=1;i<=k;i++) {
  19. if(a[i]==v) return 0;
  20. if(a[i]+i==v+k) return 0;
  21. if(a[i]-i==v-k) return 0;
  22. } return 1;
  23. }
  24.  
  25. int TRY(int k)
  26. {
  27. int v;
  28. for (v=1;v<=n;v++)
  29. if(check(v,k)==1)
  30. {
  31. a[k]=v;
  32. if(k==v) print();
  33. else TRY(k+1);
  34. }
  35. }
  36.  
  37. int main()
  38. {
  39. printf("nhap vao so n = \n");
  40. scanf("%d",&n);
  41. m=0; TRY(1);
  42. if(m==0) printf("k co nghiem");
  43. printf("\nfinish...");
  44. }
Success #stdin #stdout 0s 3416KB
stdin
5
stdout
nhap vao so n = 
m= 1
a[1] = 1
a[2] = 0
a[3] = 0
a[4] = 0
a[5] = 0
m= 2
a[1] = 2
a[2] = 4
a[3] = 1
a[4] = 3
a[5] = 5
m= 3
a[1] = 2
a[2] = 5
a[3] = 3
a[4] = 3
a[5] = 5
m= 4
a[1] = 3
a[2] = 5
a[3] = 2
a[4] = 4
a[5] = 5
m= 5
a[1] = 4
a[2] = 1
a[3] = 3
a[4] = 4
a[5] = 5
m= 6
a[1] = 4
a[2] = 2
a[3] = 5
a[4] = 2
a[5] = 5
m= 7
a[1] = 5
a[2] = 2
a[3] = 4
a[4] = 2
a[5] = 5
m= 8
a[1] = 5
a[2] = 3
a[3] = 1
a[4] = 4
a[5] = 5

finish...