在 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, 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 开始循环直到数组的长度
在循环内部,检查 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