腾讯技术笔试第三批 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))


#笔试题目##腾讯#
全部评论
100
点赞 回复 分享
发布于 2019-09-20 22:13
#fourth def f(n,x):          a=[0,1,2,3,4,5,6,7,8,9,'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']     b=[]     while True:         s=n//x           y=n%x           b=b+[y]         if s==0:             break         n=s     b.reverse()     data=[]     for i in b:         data.append(str(a[i]))     return "".join(data) number = int(input()) for i in range(number):     jinzhi = int(input())     values = list(map(str,input().split()))     value1 = int(values[0], jinzhi)     value2 = int(values[1], jinzhi)     value3 = values[2]     if value3 == "+":         final = value1 + value2         print(f(final, jinzhi))     elif value3 == "-":         final = value1 - value2         print(f(final, jinzhi))     elif value3 == "*":         final = value1 * value2         print(f(final, jinzhi))      第四道题投机取巧AC,求第三道题AC的
点赞 回复 分享
发布于 2019-09-20 22:11

相关推荐

点赞 评论 收藏
分享
06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
机械打工仔:有说的你怀疑一下就行了,直接问也太实诚了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:05
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务