题目描述
丢丢龙从 a 秒开始打嗝,每隔 b 秒打一个。龙丢丢从 c 秒开始打嗝,每隔 d 秒打一个。即:
丢丢龙在 秒会打嗝。
龙丢丢在 秒会打嗝。
试问两个人是否会同时打嗝,如果会请输出同时打嗝的最小时间,否则输出 。
输入格式
第一行仅有一个数字 代表数据组数。下面依次是每一组数据:
每组数据仅有一行四个整数
输出格式
每组数据一行一个数字 或者最小时间
。
样例
输入样例
2
2 4 6 8
1 2 2 2
输出样例
6
-1
贴代码 !
#include <iostream>
int main(){
long long n, key = 0;
long long Ans[1005] = {};
std::cin >> n;
while(n--){ //依次判断每一组
int a, b, c, d;
std::cin >> a >> b >> c >> d;
long long Tlong[11], Tdiu[11]; // 分别表示每只龙的之间
for(int i=0;i<=10;i++) {
Tlong[i] = a + i*b;
Tdiu[i] = c + i*d; //第i次
}
int cnt = 0;
int Same[1005];
for(int i=0;i<11;i++) {
for(int k=0;k<11;k++) {
if(Tlong[i] == Tdiu[k]) {
Same[cnt] = Tlong[i];
cnt++;
}
}
}
if(cnt == 0) std::cout << "-1" << std::endl; // 没有同一时间
else std::cout << Same[0] << std::endl; //输出第一次同一时间
}
return 0;
}