智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=906315a76b5c14231889351088713f76

题目
打印出100-999之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

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

解法1 for循环
程序分析:

1、利用for循环控制100-999个数,

2、每个数分解出个位,十位,百位。

3、在判断这个数是否是个位、十位、百位立方之和

程序源代码:

print("水仙花数有:")
for n in range(100,1000):
    i = n // 100
    j = n // 10 % 10
    k = n % 10
    if n == i*i*i + j*j*j + k*k*k: 
        print(n)
运行结果:

解法2 数字组合
程序分析:

1、这是一个三位数

2、每个位数都是由0-9组成

3、判断每个数的立方是不是等于这个数本身

程序源代码:

print("水仙花数有:")        
for x in range(1,10):
    for y in range(0,10):
        for z in range(0,10):
            s1=x*100+y*10+z
            s2=pow(x,3)+pow(y,3)+pow(z,3)
            if s1==s2:
                print(s1)
运行结果:

解法3 字符串
程序分析:

1、把这个数字看作一个字符串

2、对这个字符串的字符进行数字转换

3、对转换后的数字进行立方求和是否等于本身

程序源代码:

print("水仙花数有:") 
for i in range(100, 1000):
    s = str(i)
    if (int(s[0]) ** 3 + int(s[1]) ** 3 + int(s[2]) ** 3 == i):
        print(i)
运行结果:

还有更多其他的解法,欢迎一起交流学习
————————————————
我们的python技术交流群:941108876
智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=364151fab9fb6e1b468f50b4d83afd42