[模拟] aw3663. 打印数字菱形(模拟+图形打印+曼哈顿距离+找规律) |
您所在的位置:网站首页 › 数字1的打印体 › [模拟] aw3663. 打印数字菱形(模拟+图形打印+曼哈顿距离+找规律) |
文章目录
1. 题目来源2. 题目解析
1. 题目来源
链接:3663. 打印数字菱形 2. 题目解析找规律的一道题。 反正我是按模拟过的,但是一定是可以找规律的。 将整个图形放到二维矩阵里面,根据所有位置到中心位置的曼哈顿距离做分类: 所有和中心点的曼哈顿距离小于等于 n 的点,都是需要填数的。且所填数值为 n 减去曼哈顿距离。所有和中心点的曼哈顿距离大于 n 的点,应该输出空格。时间复杂度: O ( n 2 ) O(n^2) O(n2) 空间复杂度: O ( 1 ) O(1) O(1) 优雅的找规律: // 直接按题模拟,也可找规律即 y总写法 #include using namespace std; int main() { int n; scanf("%d", &n); for (int i = 0; i int d = abs(n - i) + abs(n - j); if (d > n) cout for (int j = 2 * (n - i); j > 0; j -- ) printf(" "); for (int j = 0; j = 0; j -- ) printf("%d ", j); puts(""); } for (int i = n - 1; i >= 0; i -- ) { for (int j = 2 * (n - i); j > 0; j -- ) printf(" "); for (int j = 0; j = 0; j -- ) printf("%d ", j); puts(""); } return 0; } |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |