| Code: : |
| #include <stdio.h> #include <conio.h> #include <windows.h> void NhapMaTran(int a[][8]); void XuatMaTran(int a[][8], int i, int j); void MaDi(int BanCo[][8], int i, int j,int dem); void main() { int a[8][8]; NhapMaTran(a); MaDi(a,0,1,1); getch(); } void NhapMaTran(int a[][8]) { for (int i=0; i<8; i++) { for (int j=0; j<8;j++) { if (i==0 && j==1) a[i][j] = 1; else a[i][j] =0; } } } void XuatMaTran(int a[][8], int i, int j) { if (j == 8) { if (i==7) { exit(0) ; } printf("\n"); XuatMaTran(a,i+1,0); } printf("%4d", a[i][j]); XuatMaTran(a,i,j+1); } void KiemTra(int BanCo[][8]) { int flag =1; for (int i=0; i<8; i++) { for (int j=0; j<8; j++) { if (BanCo[i][j]== 0) { flag = 0; break; } } if (flag == 0) { break; } } if (flag == 1) { printf("Xuat ma tran vua nhap: \n"); XuatMaTran(BanCo,0,0); } } void MaDi(int BanCo[][8], int i, int j,int dem) { if (dem==6) { KiemTra(BanCo); } else { int dx[8]={-1,-2,-2,-1, 1,2,2,1}; int dy[8]={-2,-1,1,2,2, 1,-1,-2}; for (int k=0; k<8;k++) { if (i+dx[k]>=0 && i+dx[k]<=7 && j+dy[k]>=0 && j+dy[k]<=7) { if (BanCo[i+dx[k]][j+dy[k]] ==0) { dem++; BanCo[i+dx[k]][j+dy[k]] = dem; MaDi(BanCo,i+dx[k],j+dy[k],dem); } } } } } |
| put your ads here |
| put your ads here |