*孤独的数*

简介: *孤独的数*

题目描述

在一组数中, 仅有一个数字出现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,下期见!

相关文章
|
5月前
|
存储 算法 测试技术
力扣经典150题第五十题:用最少数量的箭引爆气球
力扣经典150题第五十题:用最少数量的箭引爆气球
24 0
|
6月前
|
人工智能
888. 公平的糖果棒交换(力扣)
888. 公平的糖果棒交换(力扣)
|
数据采集 数据挖掘 Python
【每周一坑】乒乓数
刚从假期回来,又要迎接周末,各位看官想必都很辛苦,所以本周每周一坑为大家准备一道简单的甜点题目,本题取材于伯克利大学 CS61 课程 homework02。
|
6月前
|
算法 C++
快乐数(C++)
快乐数(C++)
62 0
|
6月前
|
算法 测试技术
联想算法题-小朋友分糖果
联想算法题-小朋友分糖果
36 0
|
6月前
【每日一题Day180】LC2409统计共同度过的日子数 | 模拟
【每日一题Day180】LC2409统计共同度过的日子数 | 模拟
43 0
|
12月前
|
算法 Java
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
代码随想录算法训练营第三十四天 | LeetCode 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球
63 0
leetcode 1921. 消灭怪物的最大数量(每日一题)
leetcode 1921. 消灭怪物的最大数量(每日一题)
78 0