I am a teacher!

导航

习题解析之:查找数字

【问题描述】

输入以空格分隔的一系列数字,要求其中只有一个数字出现奇数次,其他的数都出现偶数次。找到并输出这个出现次数为奇数的数字。
本题所有用例保证满足题目要求。
输入格式

输入数字以空格间隔,换行表示结束

示例
输入:
1 1 2 2 3 4 4 10 10

输出:
3

【编程思路1】

        创建一个字典 d,将输入的数字作为键,该数字出现的次数作为值,加入到字典中。

        遍历字典中的键值对,输出值为奇数的键即可。

        编写的源程序如下:

        image

 【编程思路2】

        对于本题来说,由于输入的一系列数字中只有一个数字出现奇数次,其他的数都出现偶数次。Python 中有一个位运算符^,其功能是将两个操作数按位异或。

       由于 0 ^ x 的结果为 x,x ^ x 的结果为0。因此,若将输入的数字全部进行异或运算,则出现次数为偶数次的数字异或之后的结果为0,出现次数为奇数次的数字异或之后的结果为该数字。由于只有一个数字出现奇数次,因此,最后的异或结果就是出现奇数次的数字。

        编写一个简单的循环程序如下:

        image

posted on 2025-12-03 14:36  aTeacher  阅读(16)  评论(0)    收藏  举报