Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm phần tử mảng mà tất cả các phần tử đều chia hết cho nó bằng C++


Xét chúng ta có một mảng A với một vài phần tử. Chúng ta phải tìm một phần tử từ A, sao cho tất cả các phần tử có thể chia hết cho nó. Giả sử A như [15, 21, 69, 33, 3, 72, 81], thì phần tử sẽ là 3, vì tất cả các số đều chia hết cho 3.

Để giải quyết bài toán này, chúng ta sẽ lấy số nhỏ nhất trong A, sau đó kiểm tra xem tất cả các số có thể chia hết cho số nhỏ nhất hay không, nếu có thì trả về số đó, ngược lại trả về false.

Ví dụ

#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); }

Kết quả

The number is: 3