腾讯技术笔试第三批 100-20-20-80-0
感觉鹅厂orz 呜呜呜
大家都答出多少?
分享编程第四题python, ac 80%
import sys
kl = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
def solution(n1,n2,k,c):
# n1,n2,c: string
# k:int
if k == 10:
x =int(n1)
y = int(n2)
else:
x = ktoa(n1,k)
y= ktoa(n2,k)
if c == '*':
tmp= x*y
elif c =='+':
tmp=x+y
elif c == '-':
# non-negative
tmp = x-y
if k ==10:
res=str(tmp)
else:
res = atok(tmp,k)
return res
def atok(num,k):
# num:int
# num_k: string
num_k = ''
a, b = num, 0
while a != 0:
a = num//k
b = num % k
if b > 10:
num_k = kl[b-10] +num_k
else:
num_k = str(b) + num_k
return num_k
def ktoa(num,k):
#num: string
# num_10: int
l = len(num)
res = 0
for si in num:
if si in kl:
res += (kl.index(si)+10)* k**(l-1)
res += int(si) * k**(l-1)
l -=1
return res
n = int(sys.stdin.readline().strip())
for i in range(n):
k = int(sys.stdin.readline().strip())
n1,n2,c = sys.stdin.readline().strip().split(' ')
print(solution(n1,n2,k,c))
查看14道真题和解析