没有
感觉做这题意义不大
但是初学可以做一下加深一下对循环的理解(?
@[220218SZC](/user/1105630)
by PorkSausage @ 2024-03-19 13:55:17
~~反正我没做~~
by PorkSausage @ 2024-03-19 13:57:34
懒得调格式了,就这样吧,要证明过程可以给我说一下:
```cpp
#include <iostream>
using namespace std;
int fourmin(int a, int b, int c, int d){
int abmin = min(a,b);
int cdmin = min(c,d);
return min(abmin,cdmin);
}
int getvalue(int x, int y, int n) {
int d = fourmin(x, y, n-x+1, n-y+1);
d--;
int a = 4*(n*d-d-d*(d-1))+1;
d++;
if (d == x){
a += y-d;
} else if (d == n-y+1){
a += (n-2*(d-1)-1)+(x-d);
} else if (d == n-x+1){
a += 2*(n-2*(d-1)-1)+(n-d+1-y);
} else if (d == y){
a += 3*(n-2*(d-1)-1)+(n-d+1-x);
}
return a;
}
int n;
int main(){
scanf("%lld", &n);
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) printf("%3d", getvalue(i, j, n), "\t\n"[j == n]);
}
return 0;
}
```
by chat_jinxuan @ 2024-03-19 14:30:35
@[220218SZC](/user/1105630) @[chat_jinxuan](/user/726525) 楼上应该是正解,但是我忘了怎么输出用空格补齐了,就这样吧(
by chat_jinxuan @ 2024-03-19 14:32:15