H1wwww 发表于 2020-3-31 20:00:42

水仙花数问题

我的解答

for i in range(100,1000):
   
    if i == ((i//100) ** 3) + (((i%100)//10)**3) + ((i%10)**3):
      print(i)
   


看了下论坛也理解了小甲鱼的答案,但没怎么见到过我这种的。。
请问有什么优劣区别吗

小甲鱼答案:
for i in range(100, 1000):
    sum = 0
    temp = i
    while temp:
      sum = sum + (temp%10) ** 3
      temp //= 10
    if sum == i:
      print(i)

永恒的蓝色梦想 发表于 2020-3-31 20:03:12

没啥区别,你的也可以,只不过小甲鱼的效率要高一点

BngThea 发表于 2020-3-31 20:08:21

能实现就行

fanfan121 发表于 2020-4-2 14:34:27

你的答案我理解了 但是小甲鱼的我还没看明白

H1wwww 发表于 2020-4-2 15:45:28

fanfan121 发表于 2020-4-2 14:34
你的答案我理解了 但是小甲鱼的我还没看明白

小甲鱼循环三次,依次计算个位十位百位三次方并求和得sum,每个数都走三次循环。有早些的解释帖

fanfan121 发表于 2020-4-2 16:54:54

H1wwww 发表于 2020-4-2 15:45
小甲鱼循环三次,依次计算个位十位百位三次方并求和得sum,每个数都走三次循环。有早些的解释帖

刚刚找到了 谢谢
页: [1]
查看完整版本: 水仙花数问题