Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tìm điểm va chạm đầu tiên của hai chuỗi

Trong bài viết này, chúng ta sẽ thảo luận về một chương trình để tìm ra điểm va chạm đầu tiên, tức là điểm đầu tiên mà cả hai chuỗi đều có.

Trong phần này, chúng ta sẽ đưa ra năm biến ‘a’, ‘b’, ‘c’, ‘d’ và ‘n’. Chúng ta phải tạo hai chuỗi cấp số cộng từ chúng có n chữ số mỗi cái

b, b+a, b+2a, ….b+(n-1)a
d, d+c, d+2c, ….. d+(n-1)c

Và sau đó tìm điểm chung đầu tiên mà cả hai chuỗi đã cho.

Để giải quyết vấn đề này, chúng tôi sẽ tạo các số trong chuỗi đầu tiên. Và đối với mỗi số, chúng ta sẽ kiểm tra xem nó có lớn hơn hoặc bằng số đầu tiên của dãy thứ hai hay không và hiệu số giữa số đó và ‘d’ có chia hết cho c hay không. Nếu nó thỏa mãn cả hai điều kiện, thì số hiện tại trong chuỗi đầu tiên sẽ là kết quả.

Ví dụ

#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;
}

Đầu ra

First collision point : 249