技术标签: VS2022 C语言 c语言
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。
编写一个函数找出这两个只出现一次的数字。
例如:
有数组的元素是:1,2,3,4,5,1,2,3,4,6
只有5和6只出现1次,要找出5和6.
int arr[] = {1,2,3,4,5,1,2,3,4,6};
int sz = sizeof(arr)/sizeof(arr[0]);
int num1 = 0;
int num2 = 0;
将数组创建出来并获取他的长度 创建两个变量用来接收找到的单身狗
Found(arr[],sz,&num1,&num2);
创建一个函数来实现目标:参数使用数组+数组长度+两个变量地址。
void Found(int arr,int sz,int *num1,int *num2)
{
//定义一个临时变量tmp = 0;对数组中的元素进行^ 就可以得到一个被两个不同数^后的结果
int tmp = 0;
for(int i = 0;i <sz ;i++)
{
tmp ^= arr[i];
}
}
//定义一个临时变量k
int k = 0;
for (int i = 0; i < 32; i++)
{
//二进制位最多有32位所以我们只循环32次
if (((tmp >> i) & 1) != 0)
{
//找到需要的结果就跳出循环
k = i;
break;
}
}
*x = *y = 0;
for (int i = 0; i < sz; i++)
{
if (((arr[i] >> k) & 1) != 0)
{
*x ^= arr[i];
}
else
{
*y ^= arr[i];
}
}
好了,以上就是我们找单身狗的运算符解法了,有不同见解的帅哥美女欢迎指教!
void FoundOne(int *arr,int sz,int *x,int *y)
{
int tmp = 0;
for (int i = 0; i < sz; i++)
{
tmp^= arr[i];
}
int k = 0;
for (int i = 0; i < 32; i++)
{
if (((tmp >> i) & 1) != 0)
{
k = i;
break;
}
}
*x = *y = 0;
for (int i = 0; i < sz; i++)
{
if (((arr[i] >> k) & 1) != 0)
{
*x ^= arr[i];
}
else
{
*y ^= arr[i];
}
}
}
int main()
{
int arr[] = { 1,2,3,4,5,1,2,3,4,6 };
int sz = sizeof(arr) / sizeof(arr[0]);
int x = 0;
int y = 0;
FoundOne(arr,sz,&x,&y);
printf("%d %d", x, y);
return 0;
}
文章浏览阅读9.1k次,点赞6次,收藏9次。hive 中有case when 的语法是:case when 条件1 then 结果1when 条件2 then 结果2when 条件3 then 结果3......else 结果x end那如果被查询的行同时符合条件1和条件3呢?结果会是出现“结果1”还是“结果3”呢?根据测试,是符合结果1,原因是语句先“碰见” when 条件1 then 结果1这一句。如果语句改为:se..._hive case when then
文章浏览阅读232次。今天内容1.信息收集(收集目标所有可以收集的信息) 工具 客户端 网页端域名信息(子域名)站点信息端口信息敏感信息2.扫描探测(awvs xray)漏洞的入口点——————————————————PPT:域名解析过程:用户–>浏览器输入baidu.com -->浏览器DXS服务器缓存–>系统缓存dns服务器缓存C://windows/system32/drivers/etc/host–>dns服务器(发送请求)whois查询备案域名划分子域名_中北网络域名
文章浏览阅读707次。一、学习内容本次课学习了函数的基本知识,需要大家对如下知识点进行总结:1. 函数定义的基本格式,函数定义和函数原型(声明)的区别何在?2. 函数的调用方式有哪几种3. 什么是形参,什么是实参,函数调用时的参数传递机制是什么?二、实验内容1.定义一个判断素数的函数isprime(int n),利用该函数输出1000以内的所有素数,每行10个,最后输出一共有多少个素数。(每列对齐)2.求两个正整数的最..._调用fun函数求最大公约数
文章浏览阅读3.8k次,点赞56次,收藏33次。在使用mybatis-plus开发需求的时候会发现对于大部分的业务场景来说都会使用到join来进行联表查询,但是mybatis-plus封装的 mapper 不支持 join,如果需要支持就需要自己手动去实现,给大家推荐一个好用的插件(Mybatis-Plus-Join(简称 MPJ)是一个 Mybatis-Plus的增强工具,在 MyBatis-Plus 的基础上只做增强不做改变,为简化开发、提高效率而生。_mybatisplus一对多
文章浏览阅读106次。基于JAVA学生信息管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署。springboot基于springboot和vue的酒店管理系统。springboot基于SpringBoot的自助旅游导航系统。springboot基于JSP的企业办公管理系统设计与实现。JSP宠物食品店系统的设计与实现sqlserver。ssm基于Java的幼儿早教系统软件的设计与实现。ssm基于vue的健康餐饮管理系统的设计与实现。ssm基于JAVA的求职招聘网站的设计与实现。
文章浏览阅读113次。一. 基本步骤 1.1环境准备 开始前,请确认gcc g++开发类库是否装好,默认已经安装。 注:等待linux下载更新功能准备好了 重启系统 在执行下载安装命令,如执行命令没有问题可以继续往下走 1. 最小Ubuntu安装插件 1. 需要安装 sudo apt-get install build-essen..._snail mock
文章浏览阅读288次。前几天分享了一篇网页代码高亮插件highlight.js,效果还不错,因为highlight.js本身没有行号展示,对于观感和体验上来源还是有点不太友好哈,恩。这几天越看越难受,忍不了还是弄一下吧。操作完成,上面代码框展示的就是配置后的效果了,因为我不大喜欢侧那块灰色的条,所以在css里面注释了,因人而异吧,喜欢的可以自己打开试下效果。_highlightjs/vue-plugin 行号
文章浏览阅读1.6k次。本文介绍了XP系统上创建宽带连接的方法;如果用户办理的是PPPoE(ADSL虚拟拨号)宽带业务,在未使用无线路由器的情况下,需要通过电脑上的“宽带连接”来拨号上网;如果有路由器,则不需要通过宽带连接来拨号上网了。下面本文详细介绍XP系统上创建宽带连接的方法。XP创建宽带连接1、右击“网上邻居”选择“属性”XP系统上网上邻居属性2、选择“创建一个新的连接”,如下图所示选择创建一个新的连接3、直接点击..._xp系统新设置宽带连接
文章浏览阅读103次。Pro LINQ:Language Integrated Query in C# 2008MS Press - Introducing Microsoft LINQLINQ for Visual C# 2005 (07年6月出版)LINQ for VB 2005 (07年6月最新PDF文字版)Manning:LINQ in ActionPro C# 2008..._c++ c# vb.net
文章浏览阅读1.1k次。confluence企业wiki搭建部署_ata confluence
文章浏览阅读830次。今天在创建SpringCloud项目过程中遇到了一个坑:当我将SpringCloud项目架子搭好之后,启动Eureka的时候报错(具体的错误提示忘记截图了),然后对问题摸索了好久之后才发现是SpringBoot与SpringCloud对应的版本问题。由于我项目中SpringBoot项目的版本用的是2.2.X,而SpringCloud的版本用的是 Greenwich.SR2所以造成了报错导致Eur..._springboot 2.1.1 对于的cloud
文章浏览阅读467次。无论是工作中还是生活里都离不开电脑,因为电脑可以用来编辑成我们需要的文件,还可以存储_磁盘恢复 csdn