C++ 中統計陣列元素個數,這些元素可以整除其他所有元素的和


假設我們有一個整數型別的陣列 arr[],任務是計算陣列中可以整除其他所有元素之和的元素的個數。

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

例如

Input − int arr_1[] = {9, 6, 3}
Output − count is 3

解釋 - 因為元素 9+6 = 15 可以被 3 整除,元素 9+3 =12 可以被 6 整除,以及 6+3 = 9 可以被 9 整除。所以,計數為 3。

Input − arr[] = {3, 10, 4, 6, 7}
Output − count is 3

解釋 - 因為元素 10+4+6+7 = 27 可以被 3 整除,元素 3+4+6+7 =20 可以被 10 整除,以及 3+10+4+7 = 24 可以被 6 整除。所以,計數為 3。

下面程式中使用的方案如下

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

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

  • 取一個臨時變數來儲存元素的計數。

  • 開始迴圈,從 i=0 到 i 小於陣列大小

  • 在迴圈內部,將臨時變數(例如 temp)設定為 0

  • 在迴圈內部,開始另一個迴圈,從 j=0 到 j 小於陣列大小

  • 檢查 i 是否等於 j,如果是則繼續

  • 否則,設定 temp = temp + arr[j]

  • 現在檢查 temp % arr[i] 是否等於 0,如果是則將計數的值加 1

  • 返回計數

  • 列印結果。

示例

 線上演示

#include <iostream>
using namespace std;
int countelements( int arr_1[], int size){
   // To store the count of required numbers
   int result = 0;
   for (int i = 0; i < size; i++){
      // Initialize sum to 0
      int sum = 0;
      for (int j = 0; j < size; j++){
         if (i == j){
            continue;
         }
         else{
            sum += arr_1[j];
         }
      }
      // If sum is divisible by the chosen element
      if (sum % arr_1[i] == 0){
         result++;
      }
   }
   // Return the count
   return result;
}
// main function
int main(){
   int arr_1[] = { 1, 2, 3, 4, 5, 6 };
   int size = sizeof(arr_1) / sizeof(arr_1[0]);
   cout <<"count is " <<countelements(arr_1, size);
   return 0;
}

輸出

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

count is 2

更新於: 2020年5月15日

267 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.