主题:菜鸟求助!!!
1 2 3 4 如左图数阵,从4或8或12开始以斜对角线规则
5 6 7 8 行走,如4->6或4->11,要经过所有数字,且
9 10 11 12 只经过一次,最终回到出发点,按顺序输出
13 14 所经过的数字
#include "stdio.h"
#define N 6
int h=0;
int a[N][N];
void fa(int i,int j)
{ int h=0;
int b[20];
if(a[i][j]!=0)
{
b[h++]=a[i][j];
a[i][j]=0;
}
a[1][4]=4;
fa(i-1,j+2);
fa(i-1,j-2);
fa(i-2,j-1);
fa(i-2,j+1);
fa(i+1,j+2);
fa(i+1,j-2);
fa(i+2,j-1);
fa(i+2,j+1);
for(h=0;h<15;h++)
printf("%d\t",b[h]);
}
void main()
{
int i,j,k=1,t;
int a[N][N];
void fa(int,int);
for(i=1;i<4;i++)
for(j=1;j<5;j++)
a[i][j]=k++;
a[4][2]=13;
a[4][3]=14;
fa(1,4);
}
请高手帮我编一个
5 6 7 8 行走,如4->6或4->11,要经过所有数字,且
9 10 11 12 只经过一次,最终回到出发点,按顺序输出
13 14 所经过的数字
#include "stdio.h"
#define N 6
int h=0;
int a[N][N];
void fa(int i,int j)
{ int h=0;
int b[20];
if(a[i][j]!=0)
{
b[h++]=a[i][j];
a[i][j]=0;
}
a[1][4]=4;
fa(i-1,j+2);
fa(i-1,j-2);
fa(i-2,j-1);
fa(i-2,j+1);
fa(i+1,j+2);
fa(i+1,j-2);
fa(i+2,j-1);
fa(i+2,j+1);
for(h=0;h<15;h++)
printf("%d\t",b[h]);
}
void main()
{
int i,j,k=1,t;
int a[N][N];
void fa(int,int);
for(i=1;i<4;i++)
for(j=1;j<5;j++)
a[i][j]=k++;
a[4][2]=13;
a[4][3]=14;
fa(1,4);
}
请高手帮我编一个