博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【C语言】给一组组数,仅仅有两个数仅仅出现了一次,其它全部数都是成对出现的,找出这两个数。...
阅读量:4596 次
发布时间:2019-06-09

本文共 744 字,大约阅读时间需要 2 分钟。

//给⼀组组数,仅仅有两个数仅仅出现了一次。其它全部数都是成对出现的,找出这两个数。#include 
int find_one_pos(int num) //找一个为为1的位置{ int n = 0; while(num) { if (num & 1 == 1) break; else { n++; num >>= 1; } } return n;}void find_two_differ(int arr[], int len, int *num1, int *num2){ int i = 0; int pos = 0; int ret = 0; *num1 = 0; *num2 = 0; for (i = 0; i < len; i++) { ret ^= arr[i]; } pos = find_one_pos(ret); for (i = 0; i < len; i++) { if (arr[i] & (1 << pos)) *num1 ^= arr[i]; else *num2 ^= arr[i]; }}int main(){ int arr[] = { 1, 2, 3, 4, 5, 1, 2, 3 }; int ret1 ; int ret2 ; find_two_differ(arr, sizeof(arr) / sizeof(arr[0]), &ret1, &ret2); printf("num1=%d\nnum2=%d\n", ret1, ret2); return 0;}

转载于:https://www.cnblogs.com/llguanli/p/6729667.html

你可能感兴趣的文章
[iOS]数据库第三方框架FMDB详细讲解
查看>>
让IE6/IE7/IE8浏览器支持CSS3属性
查看>>
Windows 某些软件显示"口口"解决办法
查看>>
PHP+Hadoop+Hive+Thrift+Mysql实现数据统计分析
查看>>
和同事下班路上讨论心得(服务器部署的几点问题)
查看>>
Spring学习总结五——SpringIOC容器五
查看>>
解决多个ajax页面请求,页面loading阻塞问题
查看>>
Executor
查看>>
Javascript 表单验证对象控件 + ajax简单验证重复项与ajax提交数据
查看>>
使用抽象工厂设计一个简单的交易模块
查看>>
如何将广告始终定位到网页右下角
查看>>
常用js整理
查看>>
查看oracle/mysql数据库版本号
查看>>
memset函数
查看>>
使用postman+newman+python做接口自动化测试
查看>>
实体框架继承关系。很好
查看>>
201671010110 2016 2017 2《java程序设计》
查看>>
flask的基础认识
查看>>
静态blog的免费托管部署、加域名与搜索优化(SEO)
查看>>
oracle trunc(d1[,c1])
查看>>