判断一点是否在以原点为中心、边与坐标轴平行的单位正方形内:检查 x 与 y 是否同时落在 [-1,1] 区间。
OJ: roj
题目 ID: 1056
难度:入门
标签:入门几何判断
创建: 2026-09-29 16:34
更新: 2026-10-04 23:43
题目描述
给定平面上一点 yes 或 no。
思路
正方形边与坐标轴平行,点在其内部或边界上的充要条件是
参考代码
Python 版:
python
#!/usr/bin/env python3
# Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
# rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
# rainboy的学习导航网站: https://idx.roj.ac.cn
# create_at: 2025-07-11 17:15
# update_at: 2026-10-04 09:30
import sys
def solve() -> None:
data = iter(map(int, sys.stdin.buffer.read().split()))
x, y = next(data), next(data)
inside = -1 <= x <= 1 and -1 <= y <= 1
print("yes" if inside else "no")
if __name__ == "__main__":
solve()C++ 版(同一算法):
cpp
/**
* Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
* rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
* rainboy的学习导航网站: https://idx.roj.ac.cn
* create_at: 2026-10-04 23:43
* update_at: 2026-10-04 23:43
*/
#include <cstdio>
typedef long long ll;
ll x, y;
int main() {
scanf("%lld %lld", &x, &y);
// 点在以原点为中心、边与坐标轴平行的单位正方形内或边界上
// 当且仅当 x 和 y 都落在闭区间 [-1, 1] 内
if (x >= -1 && x <= 1 && y >= -1 && y <= 1)
printf("yes\n");
else
printf("no\n");
return 0;
}