AC
2025-08-27 10:17:21
发布于:广东
1阅读
0回复
0点赞
#include <stdio.h>
int main(){
int n,x,y,dir,cnt=0,a[10][10]={0},i,j,k;
int dx[4]={0,-1,0,1},dy[4]={-1,0,1,0};
scanf("%d%d%d%d",&n,&x,&y,&dir);
if(dir==1){
k=1;
if(x==1) i=2;
else if(x==n) i=0;
else if(y==1) i=1;
else if(y==n) i=3;
}else{
k=-1;
if(x==1) i=0;
else if(x==n) i=2;
else if(y==1) i=3;
else if(y==n) i=1;
}
a[x][y]=++cnt;
while(1){
int flag=0;
for(j=0;j<4;j++){
int cx=x+dx[i],cy=y+dy[i];
if(cx>=1&&cx<=n&&cy>=1&&cy<=n&&a[cx][cy]==0){
a[cx][cy]=++cnt;
x=cx; y=cy;
flag=1;
break;
}
i+=k;
if(i>3) i=0;
else if(i<0) i=3;
}
if(!flag) break;
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
这里空空如也
有帮助,赞一个