卡特曼 发表于 2020-3-2 15:14:26

小白问题

题目内容:
水仙花数是指一个n位数(n23)。它的每个位上的数字的n次幂之和等于它本身。
例如: 153是一个水仙花数”。 因为153是个3位数,而1**3+5**3+3**3-=153.
输入一个正整数max,输出100到max之间的所有水仙花数(包括max)。
输入格式: .
共一行,为一个正整数。
输出格式: .
若干行,从小到大输出水仙花数,-行为一个数。
输入样例:
2500
输出样例:
153
370
371
407
1634
有没有大神帮我下,这个之前看到的,只研究了100到1000,

zltzlt 发表于 2020-3-2 15:50:39

n = int(input())
for i in range(100, n + 1):
    length = len(str(i))
    if sum(int(j) ** length for j in str(i)) == i:
      print(i)

卡特曼 发表于 2020-3-2 16:44:53

zltzlt 发表于 2020-3-2 15:50


错误啊,这个显示是错的

zltzlt 发表于 2020-3-2 16:56:32

卡特曼 发表于 2020-3-2 16:44
错误啊,这个显示是错的

哪里错了?

卡特曼 发表于 2020-3-2 17:35:06

zltzlt 发表于 2020-3-2 16:56
哪里错了?

n = int(input())
for i in range(100, n + 1):
    length = len(str(i))
    if sum(int(j) ** length for j in str(i)) == i:
      print(i)
      
SyntaxError: multiple statements found while compiling a single statement

zltzlt 发表于 2020-3-2 17:58:38

卡特曼 发表于 2020-3-2 17:35
n = int(input())
for i in range(100, n + 1):
    length = len(str(i))


按 Ctrl + N 新建一个文件,把代码拷贝到文件中,然后再按 F5 运行

卡特曼 发表于 2020-3-2 23:03:11

zltzlt 发表于 2020-3-2 17:58
按 Ctrl + N 新建一个文件,把代码拷贝到文件中,然后再按 F5 运行

兄弟,加个V或者 Q可以吗?因为这个我不会发图片,要不我就截图给你看了,你看有空帮我解决一下吗?
页: [1]
查看完整版本: 小白问题