Untitled
unknown
c_cpp
3 years ago
1.1 kB
8
Indexable
#include<stdio.h>
int sprl[3005][3005]={0};
int main(){
int t, n;
int index,tmp_x, tmp_y, x, y;
int a,b,tmp_n; //a:分幾次走 b:走幾步
int dir_x[4] = {0,1,0,-1};
int dir_y[4] = {1,0,-1,0}; //右 下 左 上
scanf("%d",&t);
for(int i=0;i<t;i++){
scanf("%d",&n);
for(int j=0;j<n;j++){
for(int k=0;k<n;k++){
sprl[j][k]=0;
}
}
index=0; x=0; y=-1; a=1; b=0; tmp_n=n;
do{
//提前預測是否需要轉彎
if(!(b<tmp_n)){
index = (index + 1) % 4;
tmp_n--;
a++;
b=0;
}
//直走
x = x + dir_x[index];
y = y + dir_y[index];
b++;
sprl[x][y]=1;
}while(a<n);
for(int j=0;j<n;j++){
for(int k=0;k<n;k++){
if(sprl[j][k]) printf("#");
else printf(" ");
}
printf("\n");
}
}
}Editor is loading...