正经题解|N - 打印图像 - 曼哈顿距
2024-08-26 13:25:04
发布于:浙江
43阅读
0回复
0点赞
N - 打印图像 - 曼哈顿距离
题目分析
前置知识 - 曼哈顿距离
在平面上,坐标 的点 与 坐标 的点 的曼哈顿距离为 。
那么这个菱形的最内层的坐标为 ,也就是数字 ,我们记作点 。
我们发现其他点的数字即为到点 的曼哈顿距离。
曼哈顿距离大于等于 的点,不填充数字。
AC代码
#include <bits/stdc++.h>
using namespace std;
char mp[20][20];
int main() {
int n;
cin >> n;
for(int i=1;i<=n*2-1;i++) {
for(int j=1;j<=n*2-1;j++) {
mp[i][j] = '*';
}
}
for(int i=1;i<=n*2-1;i++) {
for(int j=1;j<=n*2-1;j++) {
int d = abs(i - n) + abs(j - n);
if (d >= n) continue;
mp[i][j] = d + '0';
}
}
for(int i=1;i<=n*2-1;i++) {
for(int j=1;j<=n*2-1;j++){
cout << mp[i][j];
}
cout << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个