在这个问题上,我们给了四个整数,分别表示比赛中每个人的起点和起点。我们的任务是找出两个人在跳相同次数后是否见过面。
问题描述: 在这里,我们需要检查从点p1和p2开始的两个人跳跃j1和j2是否会在路径中的某个点处。
输入: p1 = 5,p2 = 9,j1 = 4,j2 = 2
输出: 是
解释:
第一次跳跃后,p1 = 9,p2 = 11
第二次跳跃后,p1 = 13,p2 = 13
解决方法:
为了在某个时候见面,两个人都必须跳不同的距离。这是要满足人们是否可能会见的一些条件,
如果p1> p2,则s1必须小于s2。
并且((p2-p1)%(s1-s2))== 0
这样会议就可以了,否则就不可能。
#include<iostream>
using namespace std;
bool WillMeet(int p1, int j1, int p2, int j2){
return ( (j1 > j2 && ( ((p2 - p1) % (j1 - j2)) == 0)) || (j2 > j1 && ( ((p1 - p2) % (j2 - j1)) == 0)) );
}
int main() {
int p1 = 5, j1 = 4, p2 = 9, j2 = 2;
if(WillMeet(p1, j1, p2, j2))
cout<<"Both will meet at some point";
else
cout<<"Both will not meet at any point";
return 0;
}输出结果Both will meet at some point