1 CODE_KI THUAT LAP TRINH_19/12/2009 2009-12-19, 20:35
thanhtai_tt
Thành Viên
- Code:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
int TimPhanTu(int* A, int n, int value, int left, int right)
{
//Dieu kien dung
if (left > right)
{
return -1;
}
//Phan ra de quy
int mid = (left + right)/2;
if (value < A[mid])
{
return TimPhanTu(A, n, value, left, mid - 1);
}
else if (value > A[mid])
{
return TimPhanTu(A, n, value, mid + 1, right);
}
else
{
return mid;
}
}
void ChuyenDia(int N, char A, char B, char C)
{
if (N==0)
{
return;
}
ChuyenDia(N-1, A,C,B);
printf("Chuyen 1 dia tu %c --> %c\n", A, C);
ChuyenDia(N-1, B, A, C);
}
void Chon(int* A, int N, int * B, int index)
{
if (index > N - 1)
{
for (int i =0;i<N;i++)
{
printf("%d ", A[i]);
}
printf("\n");
return;
}
for (int i=1;i<=N;i++)
{
if (B[i] == 0)
{
A[index] = i;
B[i] = 1;
Chon(A, N, B, index+1);
B[i] = 0;
}
}
}
int A[8][8];
int Cot[8] = {0};
int CheoPhu[15] = {0};
int CheoChinh[15] = {0};
void Chon(int index)
{
if (index > 7)
{
for (int i=0;i<8;i++)
{
for (int j=0;j<8;j++)
{
printf("%d ", A[i][j]);
}
printf("\n");
}
printf("\n");
getch();
}
for (int j = 0;j<8;j++)
{
if (Cot[j]==0 && CheoPhu[index+j]==0 && CheoChinh[index - j + 7]==0)
{
A[index][j] = 1;
Cot[j] = 1;
CheoPhu[index+j] = 1;
CheoChinh[index-j+7] = 1;
Chon(index + 1);
A[index][j] = 0;
Cot[j] = 0;
CheoPhu[index+j] = 0;
CheoChinh[index-j+7] = 0;
}
}
}
void main()
{
int A[100];
int B[100] = {0};
int n = 3;
Chon(0);
}