洛谷 P5731 【深基5.习6】蛇形方阵

    技术2022-07-13  58

    题目描述: 思路: 重点在于蛇形方阵的填充过程,期间填充方向循环着:右/下/左/上···。 注意*每个数字占用三个字符的表达方式—— = 。

    代码:

    #include<stdio.h> void fill(int snake[][10],int n); int main() { int n; int snake[10][10] = {0}; int i,j; scanf("%d",&n); //填充蛇形方针 fill(snake,n); //打印蛇形方阵 for(i = 1;i <= n;i++) { for(j = 1;j <= n;j++) printf("=",snake[i][j]); printf("\n"); } return 0; } void fill(int snake[][10],int n) { int num = 1; int x = 1,y = 1; while(num <= n*n) { //向右 while(y <= n && snake[x][y] == 0) snake[x][y++] = num++; y--; x++; //向下 while(x <= n && snake[x][y] == 0) { snake[x++][y] = num++; } x--; y--; //向左 while(y >=1 && snake[x][y] == 0) { snake[x][y--] = num++; } y++; x--; //向上 while(x >=1 && snake[x][y] == 0) { snake[x--][y] = num++; } x++; y++; } }
    Processed: 0.014, SQL: 9