查找两个人是否在C ++中经过相同的跳转次数后是否见过面

在这个问题上,我们给了四个整数,分别表示比赛中每个人的起点和起点。我们的任务是找出两个人在跳相同次数后是否见过面。 

 

问题描述: 在这里,我们需要检查从点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