Untitled

 avatar
unknown
c_cpp
2 years ago
1.1 kB
3
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...