2022阿里4.7算法笔试题
1.
题目描述:
dd得到了一个数字,但不确定是几进制,只知道可能是2~16进制其中之一,所以需要你帮她想出所有可能的结果,并转化成十进制后对10^9+7进行取模,把所有的答案从小到达排序,若有相同的结果,只保留一个即可。
输入描述:
一个数,表示得到的数字
保证不会出现0-9,A-F之外的字符,输入数字长度不超过100000,且保证无前导0
输出描述:
每行一个数,表示可能的结果
代码:
n = 11
map = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9, 'A':10, 'B':11, 'C':12, 'D':13, 'E':14, 'F':15}
mod = 1000000007
n = list(str(n))
temp = 0
for a in n:
temp = max(temp, map[a])
if temp < 2: temp = 2
for i in range(temp, 17, 1):
res = 0
for j in range(len(n)-1, -1, -1):
res += (map[n[j]] * (i ** (len(n)-j-1))) % mod
print(res)

浙公网安备 33010602011771号