找到兩個序列的第一個碰撞點的 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

更新日期: 03-10-2019

139 次瀏覽

開啟您 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.