Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ หาจุดชนกันแรกของสองชุด


ในบทความนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาจุดชนกันจุดแรก นั่นคือจุดแรกที่ทั้งสองซีรีส์มี

ในที่นี้ เราจะมีตัวแปรห้าตัวคือ '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;
   //creating the numbers of first series
   for (int i = 0; i < n; i++) {
      x = b + i * a;
      //checking if it exists in second series
      if ((x - d) % c == 0 and 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