鱼C论坛

 找回密码
 立即注册
查看: 1172|回复: 5

[已解决]新手请教十八课动手1试题,谢谢大神解答

[复制链接]
发表于 2018-4-3 21:04:44 | 显示全部楼层 |阅读模式

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

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

x
题目是求所有三位数中哪些数是水仙花数。(水仙花数是个位数的立方加上十位数的立方加上百位数的立方等于这个数)
诚心请教一个我的答案和老师答案比,缺点在哪,有优点吗?

老师代码:
def Narcissus():
    for each in range(100, 1000):
        temp = each
        sum = 0
        while temp:
            sum = sum + (temp%10) ** 3
            temp = temp // 10  # 注意这里用地板除
        if sum == each:
            print(each, end='\t')
print("所有的水仙花数分别是:", end='')
Narcissus()

我的代码:
for i in range(100,1000):
    if i == (i//100)**3 + (i%10)**3 + ((i%100)//10)**3:
        print(i)
   
最佳答案
2018-4-3 22:37:00
这是我做完小甲鱼之后自己敲的找自幂数的代码...

水仙花数是三位数中的自幂数...

而我这个可以查找出指定范围内不同位数的自幂数~

可以参考下哦~

  1. def zms(min_num,max_num):
  2.     mi=int(min_num)
  3.     ma=int(max_num)
  4.     for i1 in range(mi,ma+1):
  5.         listf=list(str(i1))
  6.         s=len(listf)
  7.         temp=0
  8.         for i2 in range(s):
  9.             t=int(listf[i2])**s
  10.             temp+=t
  11.         if temp==i1:
  12.             print(temp,end=" ")

  13. min_num=input("请输入求自幂数的起始数:")
  14. max_num=input("请输入求自幂数的终止数:")
  15. print(min_num+ "到" + max_num + "的自幂数分别是:")
  16. zms(min_num,max_num)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-4-3 21:13:40 | 显示全部楼层
就水仙花数来说总的没多大区别。
你就是把老师的代码用较少的代码写出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 21:14:54 | 显示全部楼层
你的优点for里没用循环,
老师的优点在于可以用while做循环的思路
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 22:37:00 | 显示全部楼层    本楼为最佳答案   
这是我做完小甲鱼之后自己敲的找自幂数的代码...

水仙花数是三位数中的自幂数...

而我这个可以查找出指定范围内不同位数的自幂数~

可以参考下哦~

  1. def zms(min_num,max_num):
  2.     mi=int(min_num)
  3.     ma=int(max_num)
  4.     for i1 in range(mi,ma+1):
  5.         listf=list(str(i1))
  6.         s=len(listf)
  7.         temp=0
  8.         for i2 in range(s):
  9.             t=int(listf[i2])**s
  10.             temp+=t
  11.         if temp==i1:
  12.             print(temp,end=" ")

  13. min_num=input("请输入求自幂数的起始数:")
  14. max_num=input("请输入求自幂数的终止数:")
  15. print(min_num+ "到" + max_num + "的自幂数分别是:")
  16. zms(min_num,max_num)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-3 22:51:26 | 显示全部楼层
D_Soap 发表于 2018-4-3 22:37
这是我做完小甲鱼之后自己敲的找自幂数的代码...

水仙花数是三位数中的自幂数...

你这个牛逼,我学习一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-3 22:54:46 | 显示全部楼层
D_Soap 发表于 2018-4-3 22:37
这是我做完小甲鱼之后自己敲的找自幂数的代码...

水仙花数是三位数中的自幂数...

原来还有自幂数。。
“自幂数包括:独身数、水仙花数、四叶玫瑰数、五角星数、六合数、北斗七星数、八仙数、九九重阳数、十全十美数”
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-10 04:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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