鱼C论坛

 找回密码
 立即注册
查看: 1288|回复: 10

[已解决]大佬们初学的作业题遇到点问题求助

[复制链接]
发表于 2020-7-4 17:57:59 | 显示全部楼层 |阅读模式

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

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

x
计算水仙花数的程序
s = int(input())
for i in range(1,s+1):
    a = [int(b) **  for b in str(i)]
    if sum(a) == i:
        print("{}是水仙花数".format(i))
上面a = [int(b) **  for b in str(i)]这句中**后面应该怎么写才是计算他是N位数的
最佳答案
2020-7-4 18:14:20
2426157140 发表于 2020-7-4 18:12
s = int(input())
for i in range(100,s+1):
    str_i = str(i)





水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number)

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。


水仙花数的前提就是 其他位数的 3 次方,你直接改了题目,这叫水仙花数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-4 18:01:57 | 显示全部楼层


for 循环遍历字符串就是从 百->十位->个位 一一遍历循环的,所以这里你只需要 3 次方即可了
s = int(input())
for i in range(1,s+1):
    a = [int(b) ** 3 for b in str(i)]
    if sum(a) == i:
        print("{}是水仙花数".format(i))

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

使用道具 举报

 楼主| 发表于 2020-7-4 18:02:08 | 显示全部楼层
Twilight6 发表于 2020-7-4 17:59
for 循环遍历字符串就是从 百->十位->个位 一一遍历循环的,所以这里你只需要 3 次方即可了

我开始就是三次方但是只能计算3位数啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 18:03:12 | 显示全部楼层
本帖最后由 Twilight6 于 2020-7-4 18:05 编辑
2426157140 发表于 2020-7-4 18:02
我开始就是三次方但是只能计算3位数啊




for 循环依次把所有位数都循环过去了呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 18:06:36 | 显示全部楼层
2426157140 发表于 2020-7-4 18:02
我开始就是三次方但是只能计算3位数啊


而且 水仙花数一共只有 4 个(不包含 1)  你超过 407 之后都不会有了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-4 18:12:02 | 显示全部楼层
Twilight6 发表于 2020-7-4 18:06
而且 水仙花数一共只有 4 个(不包含 1)  你超过 407 之后都不会有了

s = int(input())
for i in range(100,s+1):
    str_i = str(i)
    n = len(str_i)
    a = [int(b) ** n for b in str(i)]
    if sum(a) == i:
        print("{}是水仙花数".format(i))
我改成了这样之后输入了一个N位数之后就能计算N位的了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 18:14:20 | 显示全部楼层    本楼为最佳答案   
2426157140 发表于 2020-7-4 18:12
s = int(input())
for i in range(100,s+1):
    str_i = str(i)





水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number)

水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。


水仙花数的前提就是 其他位数的 3 次方,你直接改了题目,这叫水仙花数?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-4 18:18:23 | 显示全部楼层
2426157140 发表于 2020-7-4 18:12
s = int(input())
for i in range(100,s+1):
    str_i = str(i)

这是你自创的吧,哈哈(ಡωಡ)hiahiahia
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-4 18:40:57 | 显示全部楼层
Twilight6 发表于 2020-7-4 18:14
水仙花数的前提就是 其他位数的 3 次方,你直接改了题目,这叫水仙花数?

对不起,是我问的有问题不好意思打扰你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-4 18:41:31 | 显示全部楼层
Twilight6 发表于 2020-7-4 18:14
水仙花数的前提就是 其他位数的 3 次方,你直接改了题目,这叫水仙花数?

对不起,是我问的有问题不好意思打扰你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-4 18:42:44 | 显示全部楼层
2426157140 发表于 2020-7-4 18:41
对不起,是我问的有问题不好意思打扰你了


不麻烦,没事,我们就是来解决你们的问题的哈~

加油吧 ~ 下次要把题读懂哈~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 03:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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