使用代表数字的代码制作复杂的算法,然后将它们加起来表示一个代表不同个体的数字

问题描述 投票:-2回答:1

我是否可以制定一种算法,该算法将使用数字列表(范围为1-470)和加起来组成数字的代码(L12 = 2,L11 = 7,L10 = 20,L9 = 20,L8 = 70 ,L7 = 200,R12 = 1,R11 = 4,R10 = 10,R9 = 40,R8 = 100),并创建一个L和R代码列表,使用最少的代码将这些数字加起来仅使用一次。

例如1:R12,2:L12,3:R12 L12,

但是如果我有一个像40这样的数字,则我需要算法仅吐出R9作为选项,而不吐出R = L9,R10,L11,L12,R12这也加起来40

python algorithm loops
1个回答
0
投票
def translate(num):
    code_map = {200:['L7'],100:['R8'],70:['L8'],40:['R9'],20:['L10','L9'],
    10:['R10'],7:['L11'],4:['R11'],2:['L12'],1:['R12']}
    translation = ''
    for value, codes in code_map.items():
        while num >= value and len(codes) > 0:
            translation += codes.pop(0) + ','
            num -= value
    return translation[:len(translation) - 1]
© www.soinside.com 2019 - 2024. All rights reserved.