इस लेख में, हम एक प्रोग्राम पर चर्चा करेंगे जो पहला टकराव बिंदु यानी वह पहला बिंदु ज्ञात करता है जो दोनों श्रृंखलाओं में हो।
इसमें, हमें पांच वेरिएबल 'a', 'b', 'c', 'd' और 'n' दिए जाएंगे। हमें इनसे n अंकों की दो अंकगणितीय प्रगति श्रृंखलाएं बनानी होंगी
b, b+a, b+2a, ... b+(n-1)a d, d+c, d+2c, ... d+(n-1)c
और फिर दिए गए दोनों श्रृंखलाओं का पहला सामान्य बिंदु ज्ञात करना होगा।
इसे हल करने के लिए, हम पहली श्रृंखला में संख्याएं बनाएंगे। और प्रत्येक संख्या के लिए हम जांचेंगे कि क्या यह दूसरी श्रृंखला की पहली संख्या से बड़ी या बराबर है और क्या उस संख्या और 'd' का अंतर c से विभाज्य है। यदि यह दोनों शर्तों को पूरा करता है, तो पहली श्रृंखला में वर्तमान संख्या परिणाम होगी।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
void calc_series(int a, int b, int c, int d, int n) {
int x, flag = 0;
// पहली श्रृंखला की संख्याएं बनाना
for (int i = 0; i < n; i++) {
x = b + i * a;
// जांचना कि क्या यह दूसरी श्रृंखला में मौजूद है
if ((x - d) % c == 0 && x - d >= 0) {
cout << "First collision point : " << x << endl;
flag = 1;
break;
}
}
if(flag == 0) {
cout << "No collision point exists" << endl;
}
}
int main() {
int a = 16;
int b = 9;
int c = 23;
int d = 19;
int n = 78;
calc_series(a, b, c, d, n);
return 0;
}
आउटपुट
First collision point : 249