在将给定数组分成两半后,进行K次循环移位后,使用位运算OR找到数组的和

2023年 8月 29日 66.4k 0

在将给定数组分成两半后,进行K次循环移位后,使用位运算OR找到数组的和

在C++中,拆分数组意味着将数组分成多个子数组。位或运算符用于处理C++中两个位或索引之间的比较和计算。在本文中,我们使用k个循环移位,这意味着最后一个索引位置将被移动到零索引位置,即根据k次移动到第一个数组元素。

让我们举一个例子来理解数组中的循环移位。

给定的数组是 1, 2, 3, 4, 5, 6, 7,长度为 6。

现在我们将值3分配给k,这意味着k次循环移位。

循环移位的操作步骤如下:

步骤1 − 我们将索引[6]移动到索引[1],然后索引[5]保存索引[6]的位置。第一个循环移位变为7,1,2,3,4,5,6,这样循环移位将会旋转。

步骤2 - 第二个循环移位- 6,7,1,2,3,4,5

第三步 - 第三次循环移位- 5,6,7,1,2,3,4(最终结果)

语法

vector l; vector_name(parameter 1, parameter 2)

登录后复制

  • Vector被用作关键字,数据类型是由用户提及的一种数据类型。最后,vector_name代表用户分配的向量的名称。

  • 第一个参数指定了向量的大小。第二个参数是用于初始化向量每个元素的值。

splitArray[i%2] = splitArray[i%2] | arr[(i+k)%arr.size()]

登录后复制

  • 使用mod(%)运算符将数组分成两半,通过使用按位或‘|’,我们可以获取两半中每个元素的值。

  • ‘arr[(i+k)%arr.size()]’ 表示在执行位或操作时的移位索引,它将在分割数组中给出两个元素之一,这取决于 ‘splitArray[i%2]’ 的对应关系。

算法

  • 我们将使用头文件‘iostream’和‘vector’开始程序。

  • 我们将定义一个名为‘Split_arr_sum_bitwise’的函数,它接受‘arr’和‘k’作为参数。此函数接收数组值和循环移位后的更新数组值。

  • 我们将在‘Split_arr_sum_bitwise’函数内初始化名为‘splitArray’的向量变量。该函数将存储数组的两个半部分。

  • 接下来,使用位或运算符‘|’将值0存储在变量sum中,该变量将在后面与名为‘splitArray’的函数的数组进行相加。

  • 然后我们创建第一个for循环,在这里我们将迭代原始数组。

  • 然后我们将创建第二个for循环,使用位运算符‘|’计算两个半部分的和。这个运算符将在K次循环移位后将数组分割成两个半部分。

  • 现在开始主函数,在这里我们将数组值初始化为 ‘array’ 变量,并将值 ‘3’ 存储在变量 ‘k’ 中,该变量将定义给定数组的循环移位次数。

  • 最后,在打印语句中,我们调用了名为‘Split_arr_sum_bitwise’的函数,并将参数‘K’和‘array’传递给它以获取最终输出。

Example

的中文翻译为:

示例

在这个程序中,我们将使用位或运算符来实现数组求和,然后在K次循环移位后将数组分成两半。

#include
#include
using namespace std;
int Split_arr_sum_bitwise(vector& arr, int k) {
vector splitArray(2,0);
int sum = 0;
// Splitting the array into two halves after K-Circular Shift.
for (int i = 0; i < arr.size(); i++) {
splitArray[i % 2] = splitArray[i % 2] | arr[(i + k) % arr.size()];
}
// Sum of two halves using bitwise OR
for (int i = 0; i < splitArray.size(); i++) {
sum = sum | splitArray[i];
}
return sum;
}
int main() {
vector array = {1, 2, 3, 4, 5, 6, 7};
int k = 3;
cout

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论