题目描述 在数轴给出两条在线段的位置,求重叠的长度。 输入 两行。 每行两个整数,表示线段的左端点和右端点的坐标。坐标的取值范围[-1000000000,1000000000] 输出 两条线段重叠的长度。 样例输入 Copy 0 10 5 18 样例输出 Copy 5 用c++语言编写
时间: 2024-04-12 16:31:10 浏览: 244
要计算两条线段的重叠长度,我们需要找到它们的交集部分。
首先,我们可以观察到重叠长度等于两个线段的最小右端点减去最大左端点。
我们可以将第一个线段的左端点取最大值作为新的左端点,将第二个线段的右端点取最小值作为新的右端点,这样就得到了交集部分。
如果新的左端点大于等于新的右端点,则说明两个线段没有重叠部分,重叠长度为0;否则,重叠长度等于新的右端点减去新的左端点。
以下是用C++语言实现的代码:
```cpp
#include <iostream>
int main() {
int left1, right1, left2, right2;
std::cin >> left1 >> right1;
std::cin >> left2 >> right2;
int overlapLength = std::min(right1, right2) - std::max(left1, left2);
if (overlapLength < 0) {
overlapLength = 0;
}
std::cout << overlapLength << std::endl;
return 0;
}
```
希望对你有帮助!如有疑问,请继续提问。
阅读全文