1 条题解
-
0
📝 题目大意
高桥君在一栋 100 层的大楼中,从 X 层移动到 Y 层。如果向上移动不超过 2 层,或向下移动不超过 3 层,他会选择走楼梯;否则乘电梯。判断他是否会走楼梯。
💡 解题思路
- 题目分析:楼层范围仅为 1 到 100,且 X ≠ Y。本质是判断移动方向与距离是否符合楼梯条件——向上 1~2 层或向下 1~3 层。
- 算法推导:
- 计算楼层差
diff = Y - X:- 若
diff > 0(上楼):判断diff <= 2; - 若
diff < 0(下楼):判断|diff| <= 3,即X - Y <= 3。
- 若
- 满足任一条件输出
"Yes",否则输出"No"。
- 计算楼层差
- 边界与细节:
- X 和 Y 均在 [1, 100] 且 X ≠ Y,无需考虑相等情况。
- 注意上楼和下楼的条件不同:上楼最多 2 层,下楼最多 3 层。不要混淆或写反。
⏱️ 复杂度分析
- 时间复杂度:,仅做常数次判断与输出。
- 空间复杂度:,仅使用两个整型变量。
💻 标准代码 (C++)
#include <iostream> using namespace std; int main() { int X, Y; cin >> X >> Y; // 上楼:Y 在 X 上方 1~2 层;下楼:Y 在 X 下方 1~3 层 if ((Y - X > 0 && Y - X <= 2) || (X - Y > 0 && X - Y <= 3)) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }
- 1
信息
- ID
- 740
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 上传者