python实现水仙花数

5年以前  |  阅读数:662 次  |  编程语言:Python 

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

问题1:

判读一个数是否为水仙花数:

def printNarcissisticNumber(self, num):
    '判断一个数是否是水仙花数'
    num = int(num)
    if num < 100 or num > +1000:
        print("不是水仙花数")
    else:
        geWei = num % 10
        baiWei = int(num / 100)
        shiWei = int((num - baiWei * 100) / 10)
        # print(geWei)
        # print(shiWei)
        # print(baiWei)
        sum = geWei * geWei * geWei + shiWei * shiWei * shiWei + baiWei * baiWei * baiWei
        if sum == num:
            print("%d是水仙花数" % num)
        else:
            print("不是水仙花数")

问题2:

输出所有的水仙花数。

def printNarcissisticNumber(self):
    '判断一个数是否是水仙花数'
    for num in range(100, 1000):
        geWei = num % 10
        baiWei = int(num / 100)
        shiWei = int((num - baiWei * 100) / 10)
        # print(geWei)
        # print(shiWei)
        # print(baiWei)
        sum = geWei * geWei * geWei + shiWei * shiWei * shiWei + baiWei * baiWei * baiWei
        if sum == num:
            print("%d是水仙花数" % num)
 相关文章:
请判断一个数是不是水仙花数。
实现水仙花数的5个示例
python实现水仙花数
Linux shell编程求3位数水仙花数
JS判断一个数是否是水仙花数
JS--水仙花数
Go语言之水仙花数