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

หาสมาชิกในอาร์เรย์ที่ทุกสมาชิกหารด้วยมันลงตัวด้วย C++

พิจารณาว่าเรามีอาร์เรย์ A ที่มีสมาชิกบางตัว เราต้องหาสมาชิกจาก A ที่ทำให้สมาชิกทั้งหมดสามารถหารด้วยมันลงตัว สมมติ A เป็น [15, 21, 69, 33, 3, 72, 81] สมาชิกจะเป็น 3 เนื่องจากทุกตัวเลขหาร 3 ลงตัว

เพื่อแก้ปัญหานี้ เราจะเอาตัวเลขที่น้อยที่สุดใน A แล้วตรวจสอบว่าทุกตัวเลขหารด้วยตัวเลขที่น้อยที่สุดลงตัวหรือไม่ ถ้าใช่ คืนค่าตัวเลขนั้น มิฉะนั้น คืนค่า false

ตัวอย่างโค้ด

#include <iostream>
#include <algorithm>
using namespace std;

int getNumber(int a[], int n) {
    int minNumber = *min_element(a, a+n);
    for (int i = 1; i < n; i++)
        if (a[i] % minNumber)
            return -1;
    return minNumber;
}

int main() {
    int a[] = { 15, 21, 69, 33, 3, 72, 81 };
    int n = sizeof(a) / sizeof(int);
    cout << "The number is: " << getNumber(a, n);
}

ผลลัพธ์

The number is: 3