【C语言】【笔试题】找出一组数据中成单出现的数字,其他所有数字都是成对出现的。(移位)

原创 2016年05月30日 15:02:06
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i = 0;
	int num= 0;
	int arr[7];
	for (; i < 7; i++)
	{
		scanf("%d", &arr[i]);
	}
	num = arr[0];
	for (i = 1; i < 7; i++)
	{
		num = num^arr[i];//a异或b之后再异或b,结果是a等同于(a^b)^b=a,同样,(a^b)^a=b,因为a^a(自身异或自身)就等于0000....0000,再异或别的数,就只剩下再次异或的数了.
	}
	printf("%d\n", num);
	system("pause");
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

一组数据中只有一个数字出现了一次。 其他所有数字都是成对出现的。请找出这个数字。(使用位运算)

注意:若数组总和为单数且执行两两匹配一定有单数             若数组总和为双数则先求最大奇数组的单数与最后一个元素比较,若不同则有两个单数,若相同则没有单数     如{ 1, 3, 5...
  • as2891877678
  • as2891877678
  • 2016年10月18日 19:04
  • 184

【C语言】给一组组数,只有两个数只出现了一次,其他所有数都是成对出现的,找出这两个数。

//给⼀组组数,只有两个数只出现了一次,其他所有数都是成对出现的,找出这两个数。 #include int find_one_pos(int num) //找一个为为1的位置 { int ...
  • doudouwa1234
  • doudouwa1234
  • 2015年06月30日 15:48
  • 988

【c语言】给一组数,只有一个数只出现了一次,其他所有数都是成对出现的。找出这个数

// 给一组数,只有一个数只出现了一次,其他所有数都是成对出现的。找出这个数 #include int find_one(int arr[], int len) { int i = 0; ...
  • zhaoyaqian552
  • zhaoyaqian552
  • 2015年06月30日 16:00
  • 562

【C语言】一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字!

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字!...
  • yaotengjian
  • yaotengjian
  • 2017年06月25日 18:39
  • 265

数组中,除了两个数字外其他数字都是成对出现,找出来着两个数字

数组中,除了两个数字外其他数字都是成对出现,找出来着两个数字 前一段,同学面试问了一个问题就是标题上的这个问题了。想了一下最起码有一下几种做法。 做法一: 可以对数组进行排序,这样如果数组是成对出现的...
  • qq_31964815
  • qq_31964815
  • 2017年02月08日 18:31
  • 352

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。找出这两个数字,编程实现。 本题思路: 1.将0与数组每个元素依次亦或的结果就是两个只出现一次的元素亦或的值,相同元素的二进制位是相同的,...
  • qq_23556715
  • qq_23556715
  • 2016年08月19日 14:53
  • 1887

整型数组里只出现一次的数字--[c语言笔试题]

找出数组内只出现一次的数字,是一系列的笔试题,来考察大家对位运算的掌握,下面我们从最简单的开始来看看吧! 一、题目:一个整型数组里只有一个数字出现了一次,其余数字都出现了两次,请写程序找出出现了一次的...
  • XHfight
  • XHfight
  • 2016年06月19日 15:00
  • 1296

位运算之只出现一次的的数字

****************位运算系列之数组中只出现一次的数字****************** //题目(1):在一个数组中只有一个数字出现一次,其他数字都是成对出现的!让你找出这...
  • bitboss
  • bitboss
  • 2016年06月06日 11:15
  • 868

找出数组中2个只出现1次的数,其他数都出现2次

问题表述: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 按位异或相关知识: 按位异或性质:将数转化...
  • imxiaosong
  • imxiaosong
  • 2015年04月08日 09:41
  • 2094

【C语言】统计数组中出现次数超过一半的数字

//统计数组中出现次数超过一半的数字 #include int Find(int *arr, int len) { int num = 0; //当前数字 int times ...
  • doudouwa1234
  • doudouwa1234
  • 2015年07月07日 15:15
  • 836
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【C语言】【笔试题】找出一组数据中成单出现的数字,其他所有数字都是成对出现的。(移位)
举报原因:
原因补充:

(最多只允许输入30个字)