当前位置: 首页 > news >正文

wordpress 建筑主题百度快照seo

wordpress 建筑主题,百度快照seo,佛山市品牌网站建设价格,海会网络建设网站前言#xff1a; 今天在刷题的时候突然看到一道题#xff0c;疑似一位故题。仔细一看#xff0c;欸#xff01;这不是就是单身狗的升级版吗#xff1f;我想那必须再安排一篇#xff0c;不过由于本篇文章与上一篇单身狗文章所涉及的知识点基本相同#xff0c;所以还请大… 前言 今天在刷题的时候突然看到一道题疑似一位故题。仔细一看欸这不是就是单身狗的升级版吗我想那必须再安排一篇不过由于本篇文章与上一篇单身狗文章所涉及的知识点基本相同所以还请大家见谅 我写的开心大家也看个乐呵不过还请单身的人不要介意单纯觉得比较有意思无意冒犯毕竟连小编自己都是单身狗。 后续小编也会尽快更新完指针相关知识点 一、题目 在一场专为情侣们策划的盛宴中竟然有两名单身者悄然混入。宴会的主人感到十分不悦并寻求你的帮助希望你能运用你敏锐的洞察力协助她识破并找出这两名不合规矩的单身者。 无意冒犯只是提供一个题目的背景 例如 有数组的元素是123456123457 只有6和7只出现1次要找出6和7. 二、代码展示无注释的 如果有想先自己思考的可以先看一看这个代码后面也会有解析 #include stdio.h int find(int num) {int index 0;while ((num 1) 0 index 32) {num 1;index;}return index; } void single(int arr[], int sz, int* n1, int* n2) {int Re 0;for (int i 0; i sz; i) {Re ^ arr[i];}int index find(Re);*n1 *n2 0;for (int i 0; i sz; i) {if (((arr[i] index) 1) 1) *n1 ^ arr[i]; else *n2 ^ arr[i];} int main() {int arr[] {1,2,3,4,5,6,1,2,3,4,5,7};int n1, n2;int sz sizeof(arr) / sizeof(arr[0]);single(arr, sz, n1, n2);printf(两只单身狗分别是%d 和 %d\n, n1, n2);return 0; } 三、题解思路 1.关于算法我们依然使用的是异或运算因为异或运算相同为0所以将数组中所有的数字进行异或操作最终得到的结果就是那两个只出现一次的数字的异或值。 例如 举个例子 int arr[ ] {1,1,2} 初始re 0 re re ^ 1 1此时re 1 re re ^ 1 1 ^ 1 0;此时re 0 re re ^ 2 0 ^ 2 2;此时re 2所以只出现一次的数字是2 2.找到这个异或结果中为 1 的某一位。根据异或运算不同为1这一位为 1 说明在这一位上那两个只出现一次的数字是不同的。 例如数组{1,1,2} 异或运算1^1^2 2; 0010   2的二进制  异或的结果是0010从右向左找1的位置 0000   0的二进制 0010   2的二进制 0000^0010 0010 (异或运算相同为0不同为1) 我们可以发现0在这一位上的数字是02在这一位上的数字是2说明结果为1的这一位两个只出现一次的数字是不同的。 3.根据这一位将数组中的数字分为两组。一组是这一位为 1 的数字另一组是这一位为 0 的数字。 再对这两组数字分别进行异或操作就可以得到那两个只出现一次的数字。 例如数组为{1,2,3,1,2,4} 第一步将所有数字异或:1 ^ 2 ^ 3 ^ 1 ^ 2 ^ 46 二进制为0110  第二步找到异或结果中为 1 的一位从右往左数第二位为 1  第三步根据这一位将数字分组 这一位为 1 的数字:{3,4}这一位为 0 的数字:{1,2,1,2} 四、函数介绍 1.main函数 int main() {int arr[] {1,2,3,4,5,6,1,2,3,4,5,7};int n1, n2;int sz sizeof(arr) / sizeof(arr[0]);single(arr, sz, n1, n2);printf(两只单身狗分别是%d 和 %d\n, n1, n2);return 0; } 数组的输入int arr[] {1,2,3,4,5,6,1,2,3,4,5,7};数组元素个数计算 int sz sizeof(arr) / sizeof(arr[0]);调用函数 single(arr, sz, n1, n2); 2.single函数 void single(int arr[], int sz, int* n1, int* n2) {int Re 0;for (int i 0; i sz; i) {Re ^ arr[i];}int index find(Re);*n1 *n2 0;for (int i 0; i sz; i) {if (((arr[i] index) 1) 1) {*n1 ^ arr[i];}else {*n2 ^ arr[i];}} } single函数作用找出数组中两个只出现一次的数字 第一个for循环实现数组中所有元素的异或运算 第二个for循环用于根据索引值将数组分为两组并分别进行异或运算 int index find(Re);将索引值传给find函数 3.find函数 int find(int num) {int index 0;while ((num 1) 0 index 32) {num 1;index;}return index; } find函数用于找到一个数的二进制表示中从右往左第一个为 1 的位的索引 五代码展示含注释 #include stdio.h int find(int num)int index 0;while ((num 1) 0 index 32) // 当前二进制位为 0 并且索引小于 32{num 1;//实现二进制中每位检查index;}return index;// 返回第一个结果为 1 的位的索引 } void single(int arr[], int sz, int* n1, int* n2) int Re 0;// 对数组中所有数字进行异或操作得到两个只出现一次数字的异或结果for (int i 0; i sz; i) {Re ^ arr[i];}int index find(Re);// 找到上述异或结果中第一个为 1 的位的索引*n1 *n2 0;// 根据找到的索引位将数组数字分为两组并分别异或for (int i 0; i sz; i) {if (((arr[i] index) 1) 1) // 判断当前数字在指定索引位是否为 1*n1 ^ arr[i]; else *n2 ^ arr[i]; } } int main() {int arr[] { 1, 2, 3, 2, 1, 4 };int n1, n2;int sz sizeof(arr) / sizeof(arr[0]);//计算数组元素single(arr, sz, n1, n2);//函数调用printf(两只单身狗分别是%d 和 %d\n, n1, n2);return 0; }
http://www.hkea.cn/news/14264901/

相关文章:

  • 成都网络推广外包商品标题seo是什么意思
  • 个人网站开发模式wordpress ldap外部登录认证
  • 哈尔滨建设局网站首页网站前端做出来后台怎么做
  • 网站建设与设计毕业设计网站后台管理系统需求
  • 可以做兼职的网站做网站聊城
  • 高端品牌网站建设九五网络怎样在百度做网站打广告
  • php网站安装图解wordpress+代码质量
  • google网站排名查询wordpress 清空文章
  • jsp网站开发实例.百度网盘公司网站运营
  • 东莞网站建设美丽泉州seo外包
  • 建站系统网站建设电商网站方案建设
  • 上海公司网站seo网站开发前景与趋势如何
  • 网站开发使用什么技术集成装修全屋定制
  • 买了一台配置强悍的电脑怎么做网站服务器看盘神器app
  • 优设网 国内专业设计师平台百度快照seo
  • 金华职院优质校建设网站百度推广与做网站推广的区别
  • 新网互联 网站上传物联网平台是什么
  • 请简述常用的网页制作工具深圳seo网站设计
  • 房产网站设计公司网站建设的域名注册
  • 门户网站时代深圳宣传片制作
  • 研发网站建设报价wordpress按时间过去文章
  • 门户网站建设方案公司tag() wordpress
  • 郑州高端网站模板公司网站无法收录
  • 网站开发公司知乎重庆发布微信公众号
  • 做微信公众号海报的网站企业网站建设实训体会
  • 网站内页设计织梦手机网站标签调用大全
  • 衡阳做网站的天津建设银行官方网站
  • 马云的网站是谁建设的wordpress文章编辑软件
  • dede游戏网站源码html网页嵌入视频代码
  • 英语培训机构网站建设策划书用vue做pc端网站