資源簡介
分治法查找最小值代碼,C語言編寫,可能需要用input.txt輸入,回到原點的騎士游歷問題代碼。
代碼片段和文件信息
#include?
int?pan[9][9]={0};
int?movex[8]={11-1-122-2-2};
int?movey[8]={2-22-21-11-1};
int?currentxcurrenty;
//int?startxstartyyuandianflag=0;
int?movedx[100]={0};
int?moveway[100]={0};
int?fmove[100]={0};
int?found=0;
FILE?*fp;
int?directnumber(int?x?int?y)
{
int?icount=0;
for?(i=0;i<8;i++)
if?((x+movex[i]>0)?&&?(x+movex[i]<=8)?&&?(y+movey[i]>0)?&&?(y+movey[i]<=8)?&&?!pan[x+movex[i]][y+movey[i]])?count++;
return?count;
}
void?tryout(int?x?int?y?int?count)
{
int?iii=1jj=1;
int?min=9mc=9;
int?moved[9]={0};
if?(count==32)
{
// printf(“1“);
if?((x==1)&&(y==6))?
{
// printf(“suc“);
found=1;
for?(i=33;i<=64;i++)
{
moveway[i]=(ii-1)*8+jj+32;
ii+=movex[movedx[i-32]];
jj+=movey[movedx[i-32]];// printf(“%d?“moveway[i]);
}
for?(i=1;i<=32;i++)??moveway[i]=65-moveway[32+i];// printf(“%d?“moveway[i]);
// scanf(“%d?“&ii);
}
}
else
{
for?(i=0;i<8;i++)?
if?((x+movex[i]>0)?&&?(x+movex[i]<=4)?&&?(y+movey[i]>0)?&&?(y+movey[i]<=8)?&&?!pan[x+movex[i]][y+movey[i]])?moved[i]=0;?else?moved[i]=1;
while?(!((moved[0]==1)&&(moved[1]==1)&&(moved[2]==1)&&(moved[3]==1)&&(moved[4]==1)&&(moved[5]==1)&&(moved[6]==1)&&(moved[7]==1)))
{
for?(i=0;i<8;i++)
if?((x+movex[i]>0)?&&?(x+movex[i]<=4)?&&?(y+movey[i]>0)?&&?(y+movey[i]<=8)?&&?
- 上一篇:語法分析器C語言源代碼附實驗報告
- 下一篇:編譯原理課設--詞法分析、語法和語義分析
評論
共有 條評論