이 기사에서는 첫 번째 충돌 지점, 즉 두 시리즈가 모두 갖는 첫 번째 지점을 찾는 프로그램에 대해 논의할 것입니다.
여기에서 5개의 변수 '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