Python3基础练习1——水仙花数

题目:打印出所有的”水仙花数”,

定义:”水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

示例:153是一个”水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

答案:153,370,371,407


分析1:假设三位数abc是个水仙花数,则 a**3+b**3+c**3=abc

for N in range(100,1000):#三位数范围
    n=str(N)
    a=int(n[0])
    b=int(n[1])
    c=int(n[2])
    if a**3+b**3+c**3==N:
        print(N)

分析2:假设三位数是N,那么百位上数等于N整除100的商,十位数上数等于N减去百位上的值,再整除10的商,个位数上数等于N减去百位的值再减去十位的值

for N in range(100,1000):
    a=N//100
    b=(N-a*100)//10
    c=N-a*100-b*10
    if a**3+b**3+c**3==N:
        print(N)

分析3:数字i,j,k组成一个水仙花,可以表示为ijk,这种方法不推荐。

for i in range(1,10):
    for j in range(0,10):
        for k in range(0,10):
            string=str(i)+str(j)+str(k)
            if (i**3+j**3+k**3)==int(string):
                print(int(string))

举一反三:判断一个数字是不是水仙花?

你可能感兴趣的