山西李逵 发表于 2021-10-22 20:43:22

水仙花数

for i in range(100,999):
    n = i % 10
    z = i/100
    m = (i-z*100)/10
    if i == n**3 + z**3 + m**3:
      print(i,"是一个水仙花数")
为什么不能运行啊。。。
   

傻眼貓咪 发表于 2021-10-22 20:45:11

本帖最后由 傻眼貓咪 于 2021-10-22 20:50 编辑

for n in range(100, 1000): # 100 至 999(不包括 1000)
    a = n//100      # 百位数
    b = (n%100)//10 # 十位数
    c = n%10      # 个位数
    if n == ((a**3) + (b**3) + (c**3)):
      print(n)

jackz007 发表于 2021-10-22 20:46:50

本帖最后由 jackz007 于 2021-10-22 20:48 编辑

    Python 整数除法一定要用地板除 //,普通除法得到的是浮点数
for i in range(100,999):
    n = i % 10
    z = i // 100
    m = (i % 100) // 10
    if i == n ** 3 + z ** 3 + m ** 3:
      print(i , "是一个水仙花数")

山西李逵 发表于 2021-10-22 20:52:32

jackz007 发表于 2021-10-22 20:46
Python 整数除法一定要用地板除 //,普通除法得到的是浮点数

谢谢

山西李逵 发表于 2021-10-22 20:54:51

傻眼貓咪 发表于 2021-10-22 20:45


谢谢

yake大叔 发表于 2021-10-22 20:55:12

傻眼貓咪 发表于 2021-10-22 20:45


老哥,你这个好看懂好多{:5_106:}

Redeemer 发表于 2021-10-22 21:43:20

傻眼貓咪 发表于 2021-10-22 20:45


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

傻眼貓咪 发表于 2021-10-23 11:24:27

Redeemer 发表于 2021-10-22 21:43
for i in range(100,1000):
    bai=i//100
    shi=i%100//10


{:5_94:}

四川小火哥 发表于 2021-10-23 12:31:26

for i in range(100,999):
    n = i % 10
    z = i//100
    m = (i-z*100)//10
    if i == n**3 + z**3 + m**3:
      print(i,"是一个水仙花数")
改成这样就行了,m和z的值要用地板除,不然得出的数是浮点数,就运行不了。
页: [1]
查看完整版本: 水仙花数