C语言---单身狗问题

news/2024/5/30 17:32:04/文章来源:https://blog.csdn.net/binhyun/article/details/136595734

1.单身狗初阶

这个题目就是数组里面有一串数字,都是成对存在的,只有一个数字只出现了一次,请你找出来

(1)异或是满足交换律的,两个相同的数字异或之后是0;

(2)让0和每个数字都异或一遍,出现2次的经过异或就会变为0,而出现了一次的就会被保留

0^m=m,因为一个数字异或0就是这个数字本身;

2.单身狗进阶

(1)这个的进阶题目多了一个单身狗,需要把2个单独出现的数字全部打印出来

(2)我们知道5,6应该被打印出来,但是如果我们像上面的题目一样进行异或操作,最后的结果

就是5和6异或,那么最后的结果既不是5,也不是6,显然不符合题意;

(3)这个时候最好的方法就是进行分组,而且要把5,6分开,最后分别在这两个组里面进行异或

最后一个组剩下5,一个组剩下6,这样就得到了我们想要的结果;

(4)明确了思路,我们就要着手准备如何进行分组,分组的依据是什么,才能够把5,6分开;

(5)1:0001

         2:0010

         3:0011

         4:0100

         5:0101

         6:0110

5^6==0011;

我们通过观察这几个数字的二进制序列可以发现,1,3,5的二进制最低位的数字是1,

2 4 6的二进制最低位的数字是0,这个就可以作为我们的分组依据;

(6)程序应该如何设计呢,主函数这样设计:

findnum是我们的自定义函数,因为形参的改变不会影响实参,形参是实参的一份临时拷贝,所以我们传递地址,这样形参的改变就可以同步到实参了;

(7)我们的自定义函数这样设计:

我们让数组里面的数字和1进行按位与,根据他们的二进制序列,1,3,5进行之后的结果是1,2,4,6进行之后的结果是0;在它们各自的组内进行异或,最后得到的5给了*pm1,6给了*pm2

(8)返回主函数之后就得到了2条单身狗,就是5,6打印了出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1006571.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jupyter notebook 突然莫名奇妙的白屏

jupyter notebook 突然莫名奇妙的白屏 事件背景: 最近在折腾openai,哎,一言难尽,使用的是conda管理python版本的切换,使用jupyter notebook来运行python程序,其实PyCharm也行,但是,…

Electron程序如何在MacOS下获取相册访问权限

1.通过entitiment.plist,在electron-builder签名打包时,给app包打上签名。最后可以通过codesign命令进行验证。 TestPhotos.plist electron-builder配置文件中加上刚刚的plist文件。 通过codesign命令验证,若出现这个,则说明成…

疯狂数钞票H5游戏

移动端微信h5 <template><div class"container" id"container"><div class"regBag"></div><div class"moneyBox"><transitionv-for"(item,index) in showImgList":key"index"…

一张照片即可生成逼真虚拟主播技术原理

虚拟形象技术正逐渐成为企业展示品牌形象、提升用户体验的重要工具&#xff0c;美摄科技凭借其卓越的技术实力&#xff0c;推出了一款基于照片生成数字人的解决方案&#xff0c;通过AI技术的综合运用&#xff0c;将一张普通的照片转化为逼真的虚拟主播。接下来&#xff0c;我们…

Ps:画笔工具

画笔工具 Brush Tool是 Photoshop 中最常用的工具&#xff0c;可广泛地用于绘画与修饰工作之中。 快捷键&#xff1a;B ◆ ◆ ◆ 常用操作方法与技巧 1、熟练掌握画笔工具的操作对于使用其他工具也非常有益&#xff0c;因为 Photoshop 中许多与笔刷相关的工具有类似的选项和操…

边缘计算全面概述

什么是边缘计算&#xff1f; 边缘计算是一种分布式计算概念&#xff0c;将智能集成到边缘设备&#xff08;边缘节点&#xff09;中&#xff0c;使数据能够在数据采集源附近实时处理和分析。由于边缘计算在网络边缘本地处理数据&#xff0c;而不是在云端或集中式数据中心&#…

MBT-Net

feature F&#xff0c;edge feature E-F where r related to the relative position 辅助信息 作者未提供代码

创建SpringCloudGateWay

创建SpringCloudGateWay 本案例基于尚硅谷《谷粒商城》项目&#xff0c;视频27 创建测试API网关 1、创建module 2、引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:x…

苹果电脑下载crossover对电脑有影响吗 crossover mac 好用吗CrossOver虚拟机 CrossOver打游戏

苹果电脑下载crossover对电脑有影响吗&#xff1f; 在苹果电脑下载安装crossover对电脑没有什么影响&#xff0c;并且可以解决macOS系统不能安装Windows应用程序的问题。相较于虚拟机和双系统而言&#xff0c;crossover安装软件更简单&#xff0c;占用内存也更小。下面我们来看…

网际报文协议ICMP及ICMP重定向实例详解

之前在一个项目中遇到了与ICMP重定向相关的问题&#xff0c;因为缺乏对ICMP相关内容的了解&#xff0c;排查了很长一段时间才查出来。本文给大家简要地介绍一下ICMP及ICMP重定向相关的内容。 1、ICMP的概念 ICMP&#xff08;Internet Control Message Protocol&#xff09;网际…

狂揽Github—start19.7k☆开源OCR—Umi-OCR

文章目录 背景Umi-OCR—源码下载Umi-OCR—可执行程序下载页面介绍截图OCR识别批量OCR识别批量文档二维码全局设置 总结&#xff1a; 背景 大家都知道我是一个Python办公自动化的小小程序员&#xff0c;经常收集一些免费开源的OCR供大家使用&#xff0c;目前我已经写出来多家OCR…

已解决:android SDK安装时点击SDK Manager出现闪退

1、首先确保电脑里边安装了JDK&#xff0c;并且要把安装路径配置在环境变量里边&#xff0c;避免使用绝对路径 推荐%JAVA_HOME%\bin 2、在C:\Users\huanhuan\Desktop\android-sdk-windows\tools路径下找到android.bat文件打开&#xff0c;把set java_exe后改为jdk中java.exe的路…

【Kotlin】类和对象

1 前言 Kotlin 是面向对象编程语言&#xff0c;与 Java 语言类似&#xff0c;都有类、对象、属性、构造函数、成员函数&#xff0c;都有封装、继承、多态三大特性&#xff0c;不同点如下。 Java 有静态&#xff08;static&#xff09;代码块&#xff0c;Kotlin 没有&#xff1…

电影票预约系统---c++实现

使用 1.打开mysql对应的数据库-->prodb 打开数据库&#xff1a;mysql -uroot -p 查看数据库&#xff1a;show databases; 使用数据库&#xff1a;use prodb; 查看用户信息&#xff1a;select * from user_info 2.打开sever 3.打开client 编译命令 server.cpp命令 g -…

“SRP模型+”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用教程

原文链接&#xff1a;“SRP模型”多技术融合在生态环境脆弱性评价模型构建、时空格局演变分析与RSEI 指数的生态质量评价及拓展应用教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247597452&idx5&snf723d9e5858a269d00e15dbe2c7d3dc0&chksmfa823c6…

【C语言】求字符串长度,三种方法(库函数,指针运算)简单易懂!

目录 一&#xff0c;strlen函数 1&#xff0c;strlen函数 2&#xff0c;strlen函数使用 二&#xff0c;getchar()函数 1&#xff0c;getchar函数 2&#xff0c;代码 三&#xff0c;指针运算 代码&#xff1a; 四&#xff0c;小结 一&#xff0c;strlen函数 1&#xff…

【Linux】深入探索:Linux网络调试、追踪与优化

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Linux ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 1. 调试网络问题 a. 使用ping和traceroute b. 使用netstat和ss c. 使用tcpdump和Wireshark 2. 追踪网络问题 a. 使用mtr b.…

简单BFF架构设计

又到周五了有了一个小时的闲暇时间简单写点东西&#xff0c;介绍一个简单的BFF的架构。BFF:Backends For Frontends,其实现在是个比较常见的前端架构设计的方案&#xff0c;其最大的优势便在于前端可以高度自由的在Node层做一些server端才可以做的东西&#xff0c;比如SSR、登录…

【网站项目】109网上手机商城

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

第二证券|炒股最好用的6个指标?

炒股存在以下好用的6个目标&#xff1a; 1、kdj目标 当k线从下方往上穿过d线时&#xff0c;构成金叉&#xff0c;是一种买入信号&#xff0c;投资者能够考虑在此刻买入一些个股&#xff0c;其间kdj金叉方位越低&#xff0c;买入信号越强&#xff1b;当k线从上往下穿过d线时&a…