溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用python實(shí)現(xiàn)水仙花數(shù)

發(fā)布時(shí)間:2021-06-24 10:09:52 來(lái)源:億速云 閱讀:591 作者:chen 欄目:編程語(yǔ)言

這篇文章主要講解了“怎么用python實(shí)現(xiàn)水仙花數(shù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么用python實(shí)現(xiàn)水仙花數(shù)”吧!

1、什么是水仙花數(shù)?

水仙花數(shù)(Narcissistic number)也被稱為超完全數(shù)字不變數(shù)(pluperfect digital invariant, PPDI)、自戀數(shù)、自冪數(shù)、阿姆斯壯數(shù)或阿姆斯特朗數(shù)(Armstrong number),水仙花數(shù)是指一個(gè) 3 位數(shù),它的每個(gè)位上的數(shù)字的 3次冪之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)

詳見(jiàn):水仙花數(shù)-百度百科

2、實(shí)現(xiàn):

def number_daffodils(m=100, n=1000):
    if type(m) is int and type(n) is int and 100 <= m < n <= 1000:
        daffodils = []
        for num in range(m, n):
            a = [int(s) for s in str(num)]
            """
            計(jì)算個(gè)、十、百位數(shù)
            x = int(num/100)  # 百位數(shù)
            y = int(num/10) % 10  # 十位數(shù)
            z = num % 10  # 個(gè)位數(shù)

            將整數(shù)按位拆分
            a = list(str(num))
            a = list(map(eval, str(num)))
            """
            if num == a[0] ** 3 + a[1] ** 3 + a[2] ** 3:
                daffodils.append(num)
        if len(daffodils) == 0:
            print("No number of daffodils")
        else:
            print(" ".join(str(i) for i in daffodils))
    elif type(m) is not int or type(n) is not int:
        raise Exception('參數(shù)類型錯(cuò)誤')
    else:
        raise Exception('參數(shù)超出范圍')
number_daffodils()

怎么用python實(shí)現(xiàn)水仙花數(shù)

3、懶人法:列表推導(dǎo)式

a = [i * 100 + j * 10 + k for i in range(1, 10) for j in range(0, 10) for k in range(0, 10) if i * 100 + j * 10 + k == i ** 3 + j ** 3 + k ** 3]

print(a) 怎么用python實(shí)現(xiàn)水仙花數(shù) 本文轉(zhuǎn)自SDK社區(qū):https://www.sdk.cn

感謝各位的閱讀,以上就是“怎么用python實(shí)現(xiàn)水仙花數(shù)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么用python實(shí)現(xiàn)水仙花數(shù)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI