2015-10-03 34 views
0

我用for循環做了它。遞歸轉換一個數字列表爲一個數字

def base2dec(nums, base): 
    adding = [] 
    power = -1 
    for num in nums[::-1]: 
     power+=1 
     adding.append(num*pow(base, power)) 
    return sum(adding) 

但是本教程練習要求我使用遞歸來完成。我不太明白。函數base2dec(nums,base)在給定base中獲取整數列表(nums)並返回相應的基數10。你們可以告訴我如何用遞歸來做到這一點嗎?我真的不知道如何。

回答

1

這裏的關鍵點是將列表拆分到一個元素和休息,並通過遞歸地休息:

def base2dec(nums, base): 
    if len(nums) == 1: 
     return nums[0] 
    else: 
     return nums[-1] + base * base2dec(nums[:-1], base) 
相關問題