1

 avatar
unknown
c_cpp
2 years ago
1.0 kB
5
Indexable
#include <stdio.h>

char sprl[5005][5005];
int main(){

    int t, n;
    int index, x, y;
    int b, tmp_n; //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] = ' ';
            }
        }

        index = 0;  x = 0;  y = -1;
        b = 0;  tmp_n = n;
        do{
            //是否轉彎
            if(!(b < tmp_n)){
                index = (index + 1) % 4;
                tmp_n--;
                b = 0;
            }
            //直走
            x = x + dir_x[index];
            y = y + dir_y[index];
            b++;
            sprl[x][y] = '#';
        }while(tmp_n > 1);

        for(int j = 0; j < n; j++){
            for(int k = 0;k < n; k++){
                printf("%c",sprl[j][k]);
            }
            printf("\n");
        }
    }
}
Editor is loading...