使用 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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP