📅  最后修改于: 2023-12-03 15:40:34.691000             🧑  作者: Mango
在平面直角坐标系中,给定圆心和半径,求是否可以从原点出发到达圆周上的任何一个点。
这个问题可以使用数学方法求解,也可以使用编程语言实现。
在判断中,注意需要使用浮点数进行比较,因为精度误差可能导致结果不正确。
import math
def is_point_on_circle(x, y, r):
distance = math.sqrt(x**2 + y**2)
return abs(distance - r) < 1e-9
# 示例
print(is_point_on_circle(1, 0, 1)) # True
print(is_point_on_circle(1, 1, 1)) # False
#include <iostream>
#include <cmath>
using namespace std;
bool is_point_on_circle(double x, double y, double r) {
double distance = sqrt(x*x + y*y);
return abs(distance - r) < 1e-9;
}
// 示例
int main() {
cout << is_point_on_circle(1, 0, 1) << endl; // 1
cout << is_point_on_circle(1, 1, 1) << endl; // 0
return 0;
}
使用勾股定理可以方便地计算出点与圆心的距离,在比较距离与半径的大小时需要注意精度误差。在使用编程语言实现时,可以使用浮点数进行比较。