int h[10][3]={{0,0,-1},{0,1,-1},{0,2,-1},{0,3,-1},{1,1,-1},{2,2,-1},
{3,0,-1},{3,1,-1},{3,2,-1},{3,3,-1}};
int a[10][2]={{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}};
void test(int i)
{int l,d,k,m,n,t1,t2,f;
if(i>10)return;
if(h[9][2]!=-1)
{for(l=0;l<10;l++)
{for(d=0;d<2;d++)
printf("%d ",a[l][d]);
}
printf("/n");
}
if(h[9][2]==-1)
{k=i%2?-1:1;
for(m=0;m<=2;m++)
for(n=0;n<=2;n++)
if(m+n<=2&&m+n>0)
{
t1=a[i][0]+k*m;
t2=a[i][1]+k*n;
for(f=0;f<10;f++)
if(h[f][0]==t1&&h[f][1]==t2&&h[f][2]==-1)
{h[f][2]=0;
a[i+1][0]=t1;
a[i+1][1]=t2;
test(i+1);
a[i+1][0]=0;
a[i+1][1]=0;
h[f][2]=-1;
}
}
}
}
main()
{test(0);
}
不知道有啥错?
是关过河问题的。