题目1256:找出两个只出现了一次的数字
2014-05-27 23:54
337 查看
题目描述:
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
输入:
输入的第一行包括一个整数N(1<=N<=1000)。
接下来的一行包括N个整数。
输出:
可能有多组测试数据,对于每组数据,
找出这个数组中的两个只出现了一次的数字。
输出的数字的顺序为从小到大。
样例输入:
样例输出:
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
输入:
输入的第一行包括一个整数N(1<=N<=1000)。
接下来的一行包括N个整数。
输出:
可能有多组测试数据,对于每组数据,
找出这个数组中的两个只出现了一次的数字。
输出的数字的顺序为从小到大。
样例输入:
6 2 3 9 3 7 2
样例输出:
7 9
import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.BufferedReader; import java.io.PrintWriter; import java.io.OutputStreamWriter; import java.io.StreamTokenizer; class Main { public static final boolean DEBUG = false; public static int N = 30; public BufferedReader cin; public PrintWriter cout; public StreamTokenizer tokenizer; public int n; public int[] arr; public void init() { try { if (DEBUG) { cin = new BufferedReader(new InputStreamReader( new FileInputStream("d:\\OJ\\uva_in.txt"))); } else { cin = new BufferedReader(new InputStreamReader(System.in)); } cout = new PrintWriter(new OutputStreamWriter(System.out)); tokenizer = new StreamTokenizer(cin); } catch (Exception e) { e.printStackTrace(); } } public String next() { try { tokenizer.nextToken(); if (tokenizer.ttype == StreamTokenizer.TT_EOF) return null; else if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) { return String.valueOf((int) tokenizer.nval); } return null; } catch (Exception e) { e.printStackTrace(); return null; } } public boolean input() { String s = next(); if (s == null) return false; n = Integer.parseInt(s); return true; } public void solve() { arr = new int ; int tmp = 0; for (int i = 0; i < n; i++) { arr[i] = Integer.parseInt(next()); tmp ^= arr[i]; } tmp = tmp & (-tmp); int a = 0, b = 0; for (int i = 0; i < n; i++) { if ((arr[i] & tmp) != 0) a ^= arr[i]; else b ^= arr[i]; } if (a > b) { tmp = a; a = b; b = tmp; } cout.println(a + " " + b); cout.flush(); } public static void main(String[] args) { Main solver = new Main(); solver.init(); while (solver.input()) { solver.solve(); } } }
相关文章推荐
- 题目1256:找出两个只出现了一次的数字 位运算
- 九度 题目1256:找出两个只出现了一次的数字
- 题目1256:找出两个只出现了一次的数字
- 九度OJ 1256:找出两个只出现了一次的数字 (位运算)
- 九度OJ 1256:找出两个只出现了一次的数字 (位运算)
- 【编程题目】找出数组中两个只出现一次的数字 ★★(自己没做出来)
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
- 程序员面试题精选100题(34)-找出数组中两个只出现一次的数字
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 程序员面试100题之三十四,找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 【算法14】找出数组中两个只出现一次的数字
- 100题_34 找出数组中两个只出现一次的数字
- 每天一道算法题-1 找出数组中两个只出现一次的数字
- (34)-[转载] 程序员面试题精选100题 -找出数组中两个只出现一次的数字
- 一个整型数组里除了两个数字之外,其它的数字都出现了两次。请写程序找出这两个只出现一次的数字。
- 【转帖】找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字