一、先看原题:
二、题目解析
1、📖 故事背景
小杨来到了一张神奇地图🗺️✨
地图是一个方格世界:
有H 行
有W 列
每个格子都有坐标
(行号, 列号)
但是!
👉 不是所有格子都普通
👉 有些是 ✨黄金格✨
2、🧠 黄金格的秘密条件
一个格子(r, c)是黄金格,当:
√(r² + c²) ≤ x + r - c听起来吓人?😄
其实我们只要照着算就行!
3、🧩 程序思路(像走地图)
1️⃣ 一行一行看
2️⃣ 一列一列看
3️⃣ 对每个格子:
计算左边
计算右边
判断能不能当黄金格
4️⃣ 能 → 计数 +1
4、💻 参考程序
#include <iostream> #include <cmath> using namespace std; int main() { int H, W, x; cin >> H >> W >> x; int ans = 0; // 黄金格数量 for (int r = 1; r <= H; r++) { for (int c = 1; c <= W; c++) { if (sqrt(r * r + c * c) <= x + r - c) { ans++; } } } cout << ans << endl; return 0; }5、🔍 逐行讲解
#include <cmath>👉 因为要用sqrt()(开平方)
for (int r = 1; r <= H; r++)👉 在地图上一行一行走
for (int c = 1; c <= W; c++)👉 每一行里,一列一列看
sqrt(r * r + c * c)👉 算左边的数学公式
if ( ... ) ans++;满足条件 → 找到一个黄金格 ✨
6、 题目要点:
双重 for 循环(二维地图)
使用
sqrt()数学函数把复杂条件写进
if