Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 같은 수의 점프 후에 두 사람이 만나는지 확인

<시간/>

이 문제에서 출발점을 나타내는 4개의 정수가 주어졌고 각 경주에서 점프를 했습니다. 우리의 임무는 같은 횟수의 점프 후에 두 사람이 만나는지를 찾는 것입니다.

문제 설명: 여기에서 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