C语言题目之单身狗2

文章目录

  • 一、题目
  • 二、思路
  • 三、代码实现


提示:以下是本篇文章正文内容,下面案例可供参考

一、题目

在这里插入图片描述

二、思路

第一步

在c语言题目之打印单身狗我们已经讲解了在一组数据中出现一个单身狗的情况,而本道题是出现两个单身狗的情况。根据一个数异或上0等于数本身,一个数异或数本身等于0。我们可以知道题目中的所有数异或之后会得到5和6的异或结果。也就是如下图:

5和6的异或结果

第二步

在第一步的过程中,我们得到两个数5和6的异或结果0011,根据上图我们可以知道,当两个数出现二进制位不同的时候,他们的异或结果为1,既然两个数异或结果是两个数的二进制位不同的结果,那我们可以判断5和6的出现二进制位不同的地方,也就是出现1的地方,然后我们根据二进制位出现1的地方,将一堆数分成两个部分,这样不就将两个单身狗进行分开来了么。

在这里插入图片描述

第三步

在第二步我们已经将所有的数分成两堆,那么接下来,只要将两堆数分别异或不就得到了两个单身狗数嘛。


三、代码实现

void findnum(int arr[], int sz, int* pnum1, int* pnum2)
{
	//得到所有数的异或结果
	int i = 0;
	int sum = 0;
	for (i = 0; i < sz; i++)
	{
		sum ^= arr[i];
	}

	//判断位数不同的那位
	int flag = 0;
	for (i = 0; i < 32; i++)
	{
		if ((sum >> i) & 1)  //按位与,两个都为1才为1,找到是1的位置,按位异或是1的位置的位肯定不同
		{
			flag = i;
			break;
		}
	}

	//分成两组
	*pnum1 = *pnum2 = 0;  //这里设置为0是防止传进来的两个数不是0
	for (i = 0; i < sz; i++)
	{
		if ((arr[i] >> flag)  & 1)
		{
			*pnum1 ^= arr[i];  //这里将标志位地方二进制为1的那一堆数异或起来
		}
		else
		{
			*pnum2 ^= arr[i];  //这里将标志位地方二进制为0的那一堆数异或起来
		}
	}
}
int main()
{
	int arr[] = { 1,2,3,4,5,1,2,3,4,6 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	int pnum1 = 0;
	int	pnum2 = 0;
	findnum(arr, sz, &pnum1, &pnum2);

	printf("%d %d",pnum1,pnum2);

	return 0;
}

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

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

相关文章

LabVIEW编程能力如何能突飞猛进

要想让LabVIEW编程能力实现突飞猛进&#xff0c;需要采取系统化的学习方法&#xff0c;并结合实际项目进行不断的实践。以下是一些提高LabVIEW编程能力的关键策略&#xff1a; 1. 扎实掌握基础 LabVIEW的编程本质与其他编程语言不同&#xff0c;它是基于图形化的编程方式&…

宝塔面板部署雷池社区版教程

宝塔面板部署雷池社区版教程 简单介绍一下宝塔面板&#xff0c;安全高效的服务器运维面板&#xff0c;使用宝塔面板的人非常多 在网站管理上&#xff0c;许多用户都是通过宝塔面板进行管理&#xff0c;宝塔面板的Nginx默认监听端口为80和443&#xff0c;这就导致共存部署时雷池…

信息安全工程师(23)网络安全体系相关模型

前言 网络安全体系相关模型是描述网络安全体系如何实现的理论框架和抽象模型&#xff0c;它们为理解和设计网络安全解决方案提供了系统化的方法。 1. PDR模型 提出者&#xff1a;美国国际互联网安全系统公司(ISS)核心内容&#xff1a;保护(Protection)、检测(Detection)、响应(…

MongoDB 双活集群在运营商的实践

在现代电信行业中&#xff0c;订单中心作为核心业务系统之一&#xff0c;承担着处理客户订单、管理订单状态、与各个业务系统进行交互等重要职责。其订单中心的高效运作直接关系到客户体验和业务连续性。为了满足不断增长的业务需求和日益复杂的运营环境&#xff0c;运营商需要…

华为HarmonyOS地图服务 11 - 如何在地图上增加点注释?

场景介绍 本章节将向您介绍如何在地图的指定位置添加点注释以标识位置、商家、建筑等&#xff0c;并可以通过信息窗口展示详细信息。 点注释支持功能&#xff1a; 支持设置图标、文字、碰撞规则等。支持添加点击事件。 PointAnnotation有默认风格&#xff0c;同时也支持自定…

11.梯度下降法的思想——举足轻重的模型优化算法

引言 优化算法在机器学习和人工智能中扮演者至关重要的角色。机器学习模型的训练过程本质上是一个优化问题&#xff0c;即通过调整模型参数来最小化损失函数。梯度下降法(Gradient Descent)在优化算法中占据着重要的地位&#xff0c;因其简单、有效且易于实现。 通过阅读本篇…

jupyter使用pytorch

1、激活环境 以下所有命令都在Anaconda Prompt中操作。 conda activate 环境名称我的环境名称是myenv 如果不知道自己的pytorch配在哪个环境&#xff0c;就用下面方法挨个试。 2、安装jupyter 1、安装 pip install jupyter2、如果已经安装&#xff0c;检查jupyter是否已…

【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理&#xff08;一&#xff09;感知机&#xff08;二&#xff09;多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、MLP分类任务实现…

多模态大模型学习(一)

参考&#xff1a;https://www.bilibili.com/video/BV1kT411o7a6?p2&spm_id_frompageDriver&vd_source156234c72054035c149dcb072202e6be 余弦相似度&#xff0c;让正样本内积趋近于1&#xff0c;负样本趋近于-1。度量学习。N特别大时&#xff0c;负样本远大于正样本&…

喜报!厦门唐普信息技术斩获 厦门火炬高新区“火炬瞪羚企业” 殊荣

近日&#xff0c;依据《厦门火炬高新区关于支持科技企业创新提质发展的若干措施》&#xff08;厦高管规 [2024] 3 号&#xff09;&#xff0c;火炬管委会启动了 2024 年度 “火炬瞪羚企业” 认定工作。 厦门火炬高新区管委会对2024年“火炬瞪羚企业”名单进行了公示&#xff0…

机器翻译之多头注意力(MultiAttentionn)在Seq2Seq的应用

目录 1.多头注意力&#xff08;MultiAttentionn&#xff09;的理念图 2.代码实现 2.1创建多头注意力函数 2.2验证上述封装的代码 2.3 创建 添加了Bahdanau的decoder 2.4训练 2.5预测 3.知识点个人理解 1.多头注意力&#xff08;MultiAttentionn&#xff09;的理念图…

protobuf编码方式

protobuf编码方式 一个简单的例子 message Test1 {optional int32 a 1; }上述的proto文件&#xff0c;设置a 150&#xff0c;那么将其序列化后&#xff0c;得到的数据就是08 96 01&#xff0c;然后你使用protoscope工具去解析这些数据&#xff0c;就得到1 : 150&#xff0c…

基于深度学习的花卉智能分类识别系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 传统的花卉分类方法通常依赖于专家的知识和经验&#xff0c;这种方法不仅耗时耗力&#xff0c;而且容易受到主观因素的影响。本系统利用 TensorFlow、Keras 等深度学习框架构建卷积神经网络&#…

【Linux:共享内存】

共享内存的概念&#xff1a; 操作系统通过页表将共享内存的起始虚拟地址映射到当前进程的地址空间中共享内存是由需要通信的双方进程之一来创建但该资源并不属于创建它的进程&#xff0c;而属于操作系统 共享内存可以在系统中存在多份&#xff0c;供不同个数&#xff0c;不同进…

推荐5款压箱底的宝贝,某度搜索就有

​ 今天要给大家推荐5款压箱底的宝贝软件了&#xff0c;都是在某度搜索一下就能找到的好东西。 1.桌面壁纸——WinDynamicDesktop ​ WinDynamicDesktop是一款创新的桌面壁纸管理工具&#xff0c;能根据用户的地理位置和时间自动更换壁纸。软件内置多个美丽的动态壁纸主题&am…

苹果电脑系统重磅更新——macOS Sequoia 15 系统 新功能一 览

有了 macoS Sequoia&#xff0c;你的工作效率将再次提升&#xff1a;快速调整桌面布局&#xff0c;一目了然地浏览网页重点&#xff0c;还可以通过无线镜像功能操控你的iPhone。 下面就来看看几项出色新功能&#xff0c;还有能够全面发挥这些功能的 App 和游戏。 macOS Sequo…

智能新突破:AIOT 边缘计算网关让老旧水电表图像识别

数字化高速发展的时代&#xff0c;AIOT&#xff08;人工智能物联网&#xff09;技术正以惊人的速度改变着我们的生活和工作方式。而其中&#xff0c;AIOT 边缘计算网关凭借其强大的功能&#xff0c;成为了推动物联网发展的关键力量。 这款边缘计算网关拥有令人瞩目的 1T POS 算…

使用build_chain.sh离线搭建匹配的区块链,并通过命令配置各群组节点的MySQL数据库

【任务】 登陆Linux服务器&#xff0c;以MySQL分布式存储方式安装并部署如图所示的三群组、四机构、 七节点的星形组网拓扑区块链系统。其中&#xff0c;三群组名称分别为group1、group2和group3&#xff0c; 四个机构名称为agencyA、agencyB、agencyC、agencyD。p2p_port、cha…

powerbi计算销售额累计同比增长率——dax

目录 效果展示&#xff1a; 一、建立日期表 二、建立度量值 1.销售收入 2.本年累计销售额 3.去年累计销售额 4.累计同比增长率 三、矩阵表制作 效果展示&#xff1a; 数据包含2017-2019年的销售收入数据 一、建立日期表 日期表建立原因及步骤见上一篇文章https://blog…

数据处理与统计分析篇-day11-RFM模型案例

会员价值度模型介绍 会员价值度用来评估用户的价值情况&#xff0c;是区分会员价值的重要模型和参考依据&#xff0c;也是衡量不同营销效果的关键指标之一。 价值度模型一般基于交易行为产生&#xff0c;衡量的是有实体转化价值的行为。常用的价值度模型是RFM RFM模型是根据…