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

ค้นหาองค์ประกอบอาร์เรย์เพื่อให้องค์ประกอบทั้งหมดหารด้วย c++


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

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

ตัวอย่าง

#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