鱼C论坛

 找回密码
 立即注册
查看: 1512|回复: 8

[已解决]水仙花数

[复制链接]
发表于 2021-10-22 20:43:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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 编辑
  1. for n in range(100, 1000): # 100 至 999(不包括 1000)
  2.     a = n//100      # 百位数
  3.     b = (n%100)//10 # 十位数
  4.     c = n%10        # 个位数
  5.     if n == ((a**3) + (b**3) + (c**3)):
  6.         print(n)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-22 20:45:11 | 显示全部楼层    本楼为最佳答案   
本帖最后由 傻眼貓咪 于 2021-10-22 20:50 编辑
  1. for n in range(100, 1000): # 100 至 999(不包括 1000)
  2.     a = n//100      # 百位数
  3.     b = (n%100)//10 # 十位数
  4.     c = n%10        # 个位数
  5.     if n == ((a**3) + (b**3) + (c**3)):
  6.         print(n)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-10-22 20:46:50 | 显示全部楼层
本帖最后由 jackz007 于 2021-10-22 20:48 编辑

    Python 整数除法一定要用地板除 //,普通除法得到的是浮点数
  1. for i in range(100,999):
  2.     n = i % 10
  3.     z = i // 100
  4.     m = (i % 100) // 10
  5.     if i == n ** 3 + z ** 3 + m ** 3:
  6.         print(i , "是一个水仙花数")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-10-22 20:52:32 | 显示全部楼层
jackz007 发表于 2021-10-22 20:46
Python 整数除法一定要用地板除 //,普通除法得到的是浮点数

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-22 20:54:51 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-22 20:55:12 | 显示全部楼层

老哥,你这个好看懂好多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-10-22 21:43:20 | 显示全部楼层

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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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


  1. [print(i) for i in range(100, 1000) if (i//100)**3 + (i%100//10)**3 + (i%10)**3 == i]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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的值要用地板除,不然得出的数是浮点数,就运行不了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 13:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表