计算在C ++中被k整除的数组中的元素数

给定一个正整数数组和一个整数变量k。任务是计算可被给定值k整除的数组中元素数的计数。

输入− int arr [] = {4,2,6,1,3,8,10,9},k = 2

输出-计算数组中可被2整除的元素数-5

解释-我们将数组中的元素除以值k并检查提醒是否为0。因此,4被2整除,2被2整除,6被2整除,1被2不整除,3被2整除,8被2除尽,10被2,9整除不能被2整除。因此,数组中有5个元素可以被k整除,即2。

输入− int arr [] = {3,2,9,15,15,0,8,10},k = 3

输出-计算数组中可被3整除的元素数-3

解释-我们将数组中的元素除以值k并检查提醒是否为0。因此,3可被3整除,2不可被3整除,9可被3整除,15可被3整除,0不可被任何数整除,8不可被3整除,10不可被整除乘以3。因此,数组中有3个元素可以被k整除,即23

以下程序中使用的方法如下

解决特定问题可以有多种方法。因此,首先,我们将采用幼稚的方法。

  • 输入一个整数元素数组和一个整数变量k

  • 计算数组的长度,并将数据传递给函数以进行进一步处理。

  • 采取一个临时变量count来存储被k整除的元素的数量

  • 从0到数组长度开始FOR循环

  • 在循环内部,检查IF arr [i]%k = 0,然后将计数增加1

  • 返回计数

  • 打印结果。

高效方法

  • 整数类型向量中的输入元素,并采用整数变量k。

  • 采取一个临时变量count来存储被k整除的元素的数量

  • 将count设置为对内置count_if()函数的调用,该函数将使用vector.begin(),vector.end()作为参数并开始遍历,如果为0,则返回i%k。

  • 打印结果。

示例(幼稚的方法)

#include <bits/stdc++.h>
using namespace std;
int divisible_k(int arr[], int size, int k){
   int count = 0;
   for(int i = 0; i<size; i++){
      if(arr[i]%k==0){
         count++;
      }
   }
   return count;
}
int main(){
   int arr[] = {4, 2, 6, 1, 3, 8, 10, 9};
   int k = 2;
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count the number of elements in an array which are divisible by "<<k<<" are: "<<divisible_k(arr, size, k);
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Count the number of elements in an array which are divisible by 2 are: 5

示例(有效方法)

#include <bits/stdc++.h>
using namespace std;
int main(){
   vector<int> vec = {4, 2, 6, 1, 3, 8, 10, 9};
   int count = count_if(vec.begin(), vec.end(), [](int i, int k = 2) { return i % k == 0; });
   cout<<"Count the number of elements in an array which are divisible by k are: "<<count;
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Count the number of elements in an array which are divisible by 2 are: 5