极限十行代码!
2024-05-06 22:15:55
发布于:浙江
95阅读
0回复
0点赞
在保持代码一定可读性的同时,还极限压行进了十行,什么实力,不用说了
#include<bits/stdc++.h>
int n, a[40][40], lasti, lastj;
int main() {
scanf("%d", &n), a[1][n / 2 + 1] = 1, lasti = 1, lastj = n / 2 + 1; //输入+初始化
for (int i = 2; i <= n * n; ++i)lasti == 1 ? lastj != n ? a[n][++lastj] = i, lasti = n : a[++lasti][lastj] = i : lastj == n ? a[--lasti][1] = i, lastj = 1 : !a[lasti - 1][lastj + 1] ? a[--lasti][++lastj] = i : a[++lasti][lastj] = i; //填充,我用的是一坨三目,其实也可以用if,但代码量就又要增加了,下面附原if_else加三目版
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j)printf("%d ", a[i][j]);
printf("\n");
}//朴实无华的输出......
}
//if (lasti == 1)lastj != n ? a[n][++lastj] = i, lasti = n : a[++lasti][lastj] = i;
//else lastj == n ? a[--lasti][1] = i, lastj = 1 : !a[lasti - 1][lastj + 1] ? a[--lasti][++lastj] = i : a[++lasti][lastj] = i; if_else加三目版
全部评论 2
e…刘,大刘了
2025-03-03 来自 浙江
0wtf!
2024-06-30 来自 广东
0额,就挺....的
2024-06-30 来自 浙江
0
有帮助,赞一个