1. 程式人生 > >一段python程式碼,

一段python程式碼,

def ss(n,numlist):
    #功能:用numlist裡面的數字,隨意組合,使它們的和湊成n
    
    #給列表排序,將大數放前面,以便先嚐試大數
    numlist.sort(reverse=True)

    #如果n小於最小對的數,嘗試失敗,返回0
    if (n<min(numlist)):
        return '0'
    
    #逐一核對,如果n剛好等於numlist列表的某個數,組合成功。
    for i in numlist:
        if n==i:
            return str(i)

    #逐一迭代,如果返回的值第一個字元不是0,表示嘗試成功,返回值。    
    for i in numlist:        
        ti=ss(n-i,numlist)
        if ti[0]!='0':
            return ti+'+'+str(i)
        else:
            del ti

    #如果上面有嘗試成功,這句話不會被執行,
    #以上嘗試失敗,會執行下面的語句,返回0
    return '0'


for i in range(100,200):
    t=ss(i,[61,71,17,19])
    if t!='0':
        print(str(i)+"="+t)
    else:
        print(str(i)+"=無解!")