0

0

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

王林

王林

发布时间:2023-08-27 23:05:06

|

1457人浏览过

|

来源于tutorialspoint

转载

在将给定数组分成两半后,进行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]’ 的对应关系。

    绘蛙AI修图
    绘蛙AI修图

    绘蛙平台AI修图工具,支持手脚修复、商品重绘、AI扩图、AI换色

    下载

算法

  • 我们将使用头文件‘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 <<"The split sum of array halves using bitwise OR is "<

输出

The split sum of array halves using bitwise OR is 7

结论

我们探索了K个循环移位的概念,其中一个数组被分成两半,并且还了解了位或操作如何执行求和以存储分割数组的值。%取模运算符将数组分成两半,显示了数组索引位置的奇偶计算。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

297

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

216

2025.10.31

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1435

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

222

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

84

2025.10.17

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

387

2023.08.14

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

2

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

6

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

16

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 2.6万人学习

Excel 教程
Excel 教程

共162课时 | 10.1万人学习

R 教程
R 教程

共45课时 | 4.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号