*孤独的数*

简介: *孤独的数*

题目描述

在一组数中, 仅有一个数字出现1次,其它数字都出现2次。只出现一次的数称为孤独的数字,你的任务是找出孤独的数字。

输入格式

输入数据有多组, 每组数据以一个整数n(n≤100)开始,后面有n个整数(所有整数≤100)。

输出格式

对每组测试数据, 输出n个整数中孤独的数字,每个输出占一行。

示例输入5 2 3 3 2 4        示例输出:4

在这里讲一种新颖的方法

^ 操作符对数据的二进制位进行运算的一个操作        

1. // ^按位异或 是这样运算的
2. //011    十进制的3
3. //011    十进制的3
4. //根据二进制位上的数相同得0,不同的1的计算方法,可得3^3=0
5. //推广一下就是a^a=0
6. //再来试一下0^3,000^011=011,可知0^3=3
7. //推广一下得0^a=a
8. //^按位异或满足交换律,所以2^3^3^2^4=2^2^3^3^4=0^4=4
9. //这样就可以找出数组中的“孤独的数”了

下面写一下完整的代码

1. #include<stdio.h>
2. int main()
3. {
4.  int n = 0;
5.  int arr[100] = { 0 };
6.  while (scanf("%d", &n) != EOF)//题目要求多组输入
7.  {
8.    int i = 0;
9.    for (i = 0; i < n; i++)
10.     {
11.       scanf("%d", &arr[i]);
12.     }
13.     int p = 0;//将孤独的数存在p里
14.     for (i = 0; i < n; i++)
15.     {
16.       p ^= arr[i];
17.     }
18.     printf("%d\n", p);
19.   }
20.   return 0;
21. }

ok,下期见!

相关文章
|
数据采集 数据挖掘 Python
【每周一坑】阿姆斯特朗数
提交代码可以使用 paste.ubuntu.com 或 codeshare.io 等代码分享网站,只需将代码复制上去保存,即可获得一个分享地址,非常方便。
|
数据采集 数据挖掘 Python
【每周一坑】乒乓数
刚从假期回来,又要迎接周末,各位看官想必都很辛苦,所以本周每周一坑为大家准备一道简单的甜点题目,本题取材于伯克利大学 CS61 课程 homework02。
|
6月前
|
算法 C++
快乐数(C++)
快乐数(C++)
69 0
|
6月前
|
存储 算法 Java
leetcode-202:快乐数
leetcode-202:快乐数
45 0
|
6月前
|
算法 Java C++
「LeetCode」202. 快乐数
「LeetCode」202. 快乐数
41 0
|
算法
Leecode202. 快乐数
Leecode202. 快乐数
66 0
一日一技:使用异或寻找两个孤独的数
一日一技:使用异或寻找两个孤独的数
85 0
|
算法 JavaScript 前端开发
日拱算法:双指针解快乐数,快乐就完事了~
对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1,那么这个数就是快乐数。