*孤独的数*

简介: *孤独的数*

题目描述

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

相关文章
|
7月前
特别数的和(蓝桥杯)
特别数的和(蓝桥杯)
|
7月前
|
算法 C++
快乐数(C++)
快乐数(C++)
77 0
|
7月前
leetcode-1700:无法吃午餐的学生数量
leetcode-1700:无法吃午餐的学生数量
65 0
|
7月前
|
存储 算法
从0备战蓝桥杯:找出只出现一次的数字,数单身狗
从0备战蓝桥杯:找出只出现一次的数字,数单身狗
68 0
从0备战蓝桥杯:找出只出现一次的数字,数单身狗
|
7月前
【每日一题Day180】LC2409统计共同度过的日子数 | 模拟
【每日一题Day180】LC2409统计共同度过的日子数 | 模拟
46 0
|
机器学习/深度学习
【蓝桥杯集训·每日一题】AcWing 3502. 不同路径数
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴
75 0
|
Python
LeetCode 1700. 无法吃午餐的学生数量
学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。
136 0
|
C++
【力扣·每日一题】507. 完美数 (C++ 模拟 数的因子)
【力扣·每日一题】507. 完美数 (C++ 模拟 数的因子)
79 0
【力扣·每日一题】507. 完美数 (C++ 模拟 数的因子)