计算给定二进制数组的所有前缀,这些前缀在C ++中可以被x整除
在本教程中,我们将讨论一个程序,以查找可被x整除的二进制数组的前缀数量。
为此,我们将提供一个二进制数组和一个值x。我们的任务是找到其前缀可以被给定值x整除的元素数量。
示例
#include <bits/stdc++.h>
using namespace std;
//用前缀计数元素
//被x整除
int count_divx(int arr[], int n, int x){
int number = 0;
int count = 0;
for (int i = 0; i < n; i++) {
number = number * 2 + arr[i];
//增加数量
if ((number % x == 0))
count += 1;
}
return count;
}
int main(){
int arr[] = { 1, 0, 1, 0, 1, 1, 0 };
int n = sizeof(arr) / sizeof(arr[0]);
int x = 2;
cout << count_divx(arr, n, x);
return 0;
}输出结果
3