1274: 喂,这里是帅帅的LCM
题目
在一组数中,找出个数为奇数的数。更多内容点击标题。
分析
其实这种题并不难,做过一次之后,绝对不会错第二次。通过读题可以发现,我们要找的那个数在这一堆数里面有奇数个。这里就得说一下异或运算符了:
// 给定一个数m,那么
m ^ m = 0
m ^ m ^ m = m
m ^ m ^ m ^ m = 0
// 也就是说偶数个m异或为0,奇数个m异或为m
代码
/**
* 用时:1676ms
* @author PengHao
* @version A1.0
* @date 2019年4月19日 下午4:44:05
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
short t, n, m; // 分别表示数据组数,每组个数,和输入的数
t = sc.nextShort();
while((t--) > 0) {
n = sc.nextShort();
m = sc.nextShort();
while((--n) > 0) { // 上一行已经输入了一个数,因此为(--n)而不是(n--)
m ^= sc.nextShort(); // 异或赋值运算符
}
System.out.println(m);
}
sc.close();
}
}
写在最后:
- 如需转载,请于标题下注明链接形式的wowpH的博客即可;
- 代码原创,如需公开引用,不能删除首行注释(作者,版本号,时间等信息)。