| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 91700 | sh25_shenpy | 打印十字图_1 | C++ | 解答错误 | 1 MS | 244 KB | 1357 | 2026-06-14 14:52:22 |
#include <iostream> using namespace std; int main() { int n; cin >> n; int size = 4 * n + 5; // 正方形总行列数 int mid = 2 * n + 2; // 中心坐标 // 逐行打印 for (int i = 0; i < size; ++i) { // 逐列打印 for (int j = 0; j < size; ++j) { bool flag = false; // 计算当前点到中心的横向、纵向距离 int di = i - mid; int dj = j - mid; di = di > 0 ? di : -di; dj = dj > 0 ? dj : -dj; // 规则1:外层多层方框(n层包围结构) for (int k = 0; k < n; ++k) { int dist = 2 * k + 2; if ((di == dist && dj <= dist) || (dj == dist && di <= dist)) { flag = true; break; } } // 规则2:最外层大边框 int outer = 2 * n + 2; if (di == outer || dj == outer) flag = true; // 规则3:中心十字核心区域 if (di <= 1 && dj <= 1) flag = true; if (flag) cout << '$'; else cout << '.'; } cout << endl; } return 0; }