在 C++ 中從除數列表中查詢 A 和 B


在本教程中,我們將解決以下問題。

給定一個整數陣列,我們必須找到兩個數 A 和 B。陣列中所有剩餘數字都是 A 和 B 的除數。

如果一個數字是 A 和 B 的公約數,那麼它將在陣列中出現兩次。

讓我們來看看解決該問題的步驟。

  • 陣列中的最大數是 A 和 B 中的一個數字。假設它為 A。

  • 現在,B 將是第二大的數字或不是 A 的除數的數字。

示例

讓我們看看程式碼。

 即時演示

#include <bits/stdc++.h>
using namespace std;
void findTheDivisors(int arr[], int n) {
   sort(arr, arr + n);
   int A = arr[n - 1], B = -1;
   for (int i = n - 2; i > -1; i--) {
      if (A % arr[i] != 0) {
         B = arr[i];
         break;
      }
      if (i - 1 >= 0 && arr[i] == arr[i - 1]) {
         B = arr[i];
         break;
      }
   }
   cout << "A = " << A << ", B = " << B << endl;
}
int main() {
   int arr[] = { 3, 2, 3, 4, 12, 6, 1, 1, 2, 6 };
   findTheDivisors(arr, 10);
   return 0;
}

輸出

如果你執行以上程式,那麼你將得到以下結果。

A = 12, B = 6

結論

如果你對本教程有任何疑問,請在評論區留言。

更新時間: 01-Feb-2021

122 篇檢視數

開啟您的職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.