美文网首页
水仙花数

水仙花数

作者: 火头陀 | 来源:发表于2018-12-10 21:17 被阅读0次

    问题

    打印出所有的 水仙花数

    问题分析

    水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)

    拓展知识

    水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
    附:其他位数的自幂数名字
    一位自幂数:独身数
    两位自幂数:没有
    三位自幂数:水仙花数
    四位自幂数:四叶玫瑰数
    五位自幂数:五角星数
    六位自幂数:六合数
    七位自幂数:北斗七星数
    八位自幂数:八仙数
    九位自幂数:九九重阳数
    十位自幂数:十全十美数
    

    算法实现

    
    #水仙花数
    #三位数=每位数的3次幂只和
    #算法复杂度 O(n)
    
    def getNarcissisticNum():
        data = []
        for number in range(100, 1000):
            s = "%d" % number
            firstNum = int(s[0])
            secondNum = int(s[1])
            thirdNum = int(s[2])
    
            if firstNum**3 + secondNum ** 3 + thirdNum ** 3 == number:
                data.append(number)
        return data
    
    if __name__ == '__main__':
        print getNarcissisticNum()
    

    相关文章

      网友评论

          本文标题:水仙花数

          本文链接:https://www.haomeiwen.com/subject/setjhqtx.html