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

โปรแกรม C++ หาจุดชนแรกของอนุกรมเลขคณิตสองอนุกรม


หาจุดชน (collision point) แรกของอนุกรมเลขคณิตสองอนุกรม

ได้รับ a,b,c,d,n สร้างอนุกรม 2 อนุกรม:

อนุกรมที่ 1: b, b+a, b+2a, ..., b+(n-1)a
อนุกรมที่ 2: d, d+c, d+2c, ..., d+(n-1)c

สร้างตัวเลขอนุกรมแรก ตรวจสอบว่า ≥ ตัวแรกของอนุกรมที่ 2 และ (ค่า - 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;
    for (int i = 0; i < n; i++) {
        x = b + i * a;
        if ((x - d) % c == 0 && 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, b = 9, c = 23, d = 19, n = 78;
    calc_series(a, b, c, d, n);
    return 0;
}

ผลลัพธ์

First collision point : 249