找到两个序列的第一个碰撞点的 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
广告