输入数值序列i行(0<i),每一行分别是进制和数值,以“#”分割。如:n#m, n是整数,代表n进制(1<n<17),m是n进制下的数值.
输入序列以结束符”END”结束。
m的字符集为0-9和A-F,保证数值在十进制下不超过1e9,行数不超过100001行。
输出j行(0<j<=i),每一行都是输入序列的“异数”。要求:
1.按照输入序列的原序输出;
2.如果没有”异数”,输出字符串”None”
3.结束符“END”不用输出
10#15 4#32 4#33 8#17 END
4#32
import sys def num(s): s = s.split('#') base,n = int(s[0]),s[1][::-1] number = 0 for i in range(len(n)): if n[i].isdigit(): number += (base**(i))*int(n[i]) else: temp = ord(n[i])-ord('A')+10 number += (base**(i))*temp return number def answer(res): dic = {} ans = [] for i in range(len(res)): tem = num(res[i]) ans.append(tem) if tem in dic: dic[tem].append(i) else: dic[tem] = [i] found = False for i in range(len(ans)): if len(dic[ans[i]])==1: found = True print(res[i]) if not found: print('None') if __name__=='__main__': res = [] for line in sys.stdin.readlines(): s = line.strip() if s=='END': break res.append(s) answer(res)
"""" 进制转换和数组计数 """ import sys from collections import Counter if __name__ == "__main__": # sys.stdin = open("input.txt", "r") a, b = [], [] # a记录原字符串,b记录十进制的数值 while True: s = input().strip() if s == 'END': break a.append(s) for c in a: n, m = c.split('#') b.append(int(m, int(n))) dic = Counter(b) ans = [] for i in range(len(b)): if dic[b[i]] == 1: ans.append(a[i]) if not ans: print("None") else: print('\n'.join(ans))