帅气小哥 发表于 2021-4-10 16:01:31

大佬 快来啊

def lsp ():
    for each1 in range(100,1000):
      a = each1 % 10
      b = each1 //10 -10
      c = each1 //100
      if each1 == a**3 +b**3 + c**3:
            print(each1)
lsp()
为啥我的程序就运行了一遍
目的是在100 到1000 的所有水仙花数

yayc_zcyd 发表于 2021-4-10 16:17:46

本帖最后由 yayc_zcyd 于 2021-4-10 16:26 编辑

if __name__ == "__main__":
    print("水仙花数是:")
    for n in range(100, 1000):
      hun = n // 100
      ten = (n - hun * 100) // 10
      ind = n % 10
      m = hun**3 + ten**3 + ind**3
      if n == m:
            print("%d \t" %n, end="")

yayc_zcyd 发表于 2021-4-10 16:18:19

本帖最后由 yayc_zcyd 于 2021-4-10 16:24 编辑

看看我写的吧{:10_254:}

肖-肖 发表于 2021-4-10 17:21:38

你这个代码:
a取得是个位上的数
c取得是百位上的数
b取得是十位上的数
但是你写的:b = each1 //10 -10
这个真的是取得是十位上的数吗?不是吧
所以我改成了:b = (each1-c*100)//10
我改后的代码如下:

def lsp ():
    for each1 in range(100,1000):
      a = each1 % 10
      #b = each1 //10 -10
      c = each1 //100
      #b = (each1-c*100)//10
      if each1 == a**3 +b**3 + c**3:
            print(each1)
lsp()
运行结果如下:
153
370
371
407
>>>
OK 希望有用吧

帅气小哥 发表于 2021-4-10 22:13:22

肖-肖 发表于 2021-4-10 17:21
你这个代码:
a取得是个位上的数
c取得是百位上的数


谢谢 大佬
页: [1]
查看完整版本: 大佬 快来啊