相遇问题 (每日一题)
原题链接: AcWing
题目描述:
在一个一维数轴的 x 位置处站着甲,y 位置处站着乙,其中 x
输入格式
第一行包含整数 T,表示共有 T 组测试数据。
每组数据占一行,包含四个整数 x,y,a,b。
输出格式
如果答案为整数秒,则输出答案,否则输出 −1。
数据范围
前 3 个测试点满足 1 ≤ T ≤ 10。
所有测试点满足 1 ≤ T ≤ 1000,0 ≤ x < y ≤ 109,1 ≤ a, b ≤ 109。
输入样例:
5
0 10 2 3
0 10 3 3
900000000 1000000000 1 9999999
1 2 1 1
1 3 1 1
输出样例:
2
-1
10
-1
1
解题思路:
这道题是一个推公式题,利用小学数学就可以推,用 x 和 y 的 路程差 除以 速度和 就可以得到结果,然后按照题意用if求余判断是否是整数秒,是就输出,不是则输出 -1。
代码:
#include <iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int x,y,a,b;
cin>>x>>y>>a>>b;
if ((y - x) % (a + b) == 0) //得数为整
{
cout << (y - x) / (a + b) << endl;
}
else
{
cout<< -1 <<endl;
}
}
return 0;
}
输入格式
第一行包含整数 T,表示共有 T 组测试数据。 每组数据占一行,包含四个整数 x,y,a,b。
输出格式
如果答案为整数秒,则输出答案,否则输出 −1。
数据范围
前 3 个测试点满足 1 ≤ T ≤ 10。 所有测试点满足 1 ≤ T ≤ 1000,0 ≤ x < y ≤ 109,1 ≤ a, b ≤ 109。
输入样例:
5
0 10 2 3
0 10 3 3
900000000 1000000000 1 9999999
1 2 1 1
1 3 1 1
输出样例:
2
-1
10
-1
1
解题思路:
这道题是一个推公式题,利用小学数学就可以推,用 x 和 y 的 路程差 除以 速度和 就可以得到结果,然后按照题意用if求余判断是否是整数秒,是就输出,不是则输出 -1。
代码:
#include <iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int x,y,a,b;
cin>>x>>y>>a>>b;
if ((y - x) % (a + b) == 0) //得数为整
{
cout << (y - x) / (a + b) << endl;
}
else
{
cout<< -1 <<endl;
}
}
return 0;
}
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 一生雾梦!
评论
ValineDisqus