题解 | #回型矩阵#

回型矩阵

https://www.nowcoder.com/practice/36d5dfddc22c4f5b88a5b2a9de7db343

#include <stdio.h>
int main() {
    int n, i, a[20][20];
    scanf("%d", &n);
    int count = 0;
    int s = 0, f = n - 1;
    while (count < n * n) {
        for (i = s; i <= f; i++)        //左 --> 右
            a[s][i] = ++count;
        for (i = s + 1; i <= f; i++)    //上 --> 下
            a[i][f] = ++count;
        for (i = f - 1; i >= s; i--)    //右 --> 左
            a[f][i] = ++count;
        for (i = f - 1; i >= s + 1; i--) //下 --> 上
            a[i][s] = ++count;
        s++;
        f--; //缩
    }
    for (i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务