4399king 发表于 2020-7-22 18:23:54

python 水仙花数

print('100~1000的水仙花数有:',end='')
for i in range(100,1001,1):
    a=(i%10)**3
    b=((i%100-i%10)/10)**3
    c=((i%1000-i%100)/100)**3
   
    if i==a+b+c:
      
      print(i)


能不能帮我把答案弄成一行的排列过去,不要换行

zltzlt 发表于 2020-7-22 18:26:33

设置 print() 的 end 参数就可以了:

print('100~1000的水仙花数有:', end='')
for i in range(100, 1001, 1):
    a = (i % 10) ** 3
    b = ((i % 100 - i % 10) / 10) ** 3
    c = ((i % 1000 - i % 100) / 100) ** 3

    if i == a + b + c:
      print(i, end=' ')

4399king 发表于 2020-7-22 18:31:08

再问一个小问题,调用函数和使用运算符哪个效率更高呀

zltzlt 发表于 2020-7-22 18:35:30

4399king 发表于 2020-7-22 18:31
再问一个小问题,调用函数和使用运算符哪个效率更高呀

你的意思是?

4399king 发表于 2020-7-22 18:52:41

i=100
while i<1000:
    a=(i%10)**3
    b=int((i/10)%10)**3
    c=int((i/100)%10)**3
    if a+b+c==i:

这段代码和您给出的那段比较,哪个更好,为什么呢
      print(i)
    i=i+1

4399king 发表于 2020-7-22 18:53:20

i=100
while i<1000:
    a=(i%10)**3
    b=int((i/10)%10)**3
    c=int((i/100)%10)**3
    if a+b+c==i:
      print(i)
    i=i+1

这段代码和您给出的那段比较,哪个更好,为什么呢

zltzlt 发表于 2020-7-22 18:53:56

4399king 发表于 2020-7-22 18:53
这段代码和您给出的那段比较,哪个更好,为什么呢

我觉得效率都差不多,只是用 for 循环更为简洁
页: [1]
查看完整版本: python 水仙花数