C++ 中陣列中可整除對的數量


給定一個任意大小的包含整數元素的陣列,任務是計算陣列中對的數量,使得一對中的一個元素可以整除另一對中的元素。

陣列是一種資料結構,可以儲存相同型別元素的固定大小的順序集合。陣列用於儲存資料集合,但通常將陣列視為相同型別變數的集合更有用。

例如

Input − int arr[] = {1, 2, 3, 6}
Output − count is 4

解釋 - (1,2), (1,3), (1,6) 和 (3,6) 是一對,其中一對中的一個元素可以整除另一對,因為 1 可以整除任何數字,並且 3 可以整除 6。所以數量是 4。

Input − int arr[] = {2, 5, 10}
Output − count is 2

解釋 - (2, 10) 和 (5,10) 是一對,其中一對中的一個元素可以整除另一對,因為 2 可以整除 10,並且 5 可以整除 10。所以數量是 2。

下面程式中使用的解決方法如下

  • 建立一個數組,例如 arr[]

  • 使用 length() 函式計算陣列的長度,該函式將根據陣列中的元素返回一個整數值。

  • 取一個臨時變數,它將儲存僅存在於陣列中的元素的數量。

  • 使用 for 迴圈,從 i 為 0 開始,到 i 小於陣列大小結束

  • 在迴圈內部,使用另一個迴圈,從 j 為 i+1 開始,到 j 小於大小結束

  • 在迴圈內部,檢查 arr[i] % arr[j] = 0 或 arr[j] % arr[i] = 0,如果是,則遞增計數

  • 返回計數

  • 列印結果。

示例

 即時演示

#include <iostream>
using namespace std;
int divisibles(int a[], int size){
   int result = 0;
   // Iterating through all pairs
   for (int i=0; i<size; i++){
      for (int j=i+1; j<size; j++){
         if (a[i] % a[j] == 0 || a[j] % a[i] == 0){
            result++;
         }
      }
   }
   return result;
}
int main(){
   int a[] = {1, 4, 7, 8, 9};
   int size = sizeof(a) / sizeof(a[0]);
   cout <<"count is " <<divisibles(a, size);
   return 0;
}

輸出

如果我們執行上述程式碼,我們將得到以下輸出:

count is 5

更新於: 2020年5月15日

210 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.