李子豪 发表于 2020-3-28 14:16:04

看不懂这个水花仙数题的答案求讲一下

n = int(input())
if n>=3 and n<6:
    for i in range(10**(n-1),10**n):
      sum=0
      for j in map(int,str(i)):
            sum=sum+j**n
      if sum==i:
            print(i)
输入一个介于3到5之间的正整数(包括3和5)
输出n位的水仙花数,每行一个数

ouyunfu 发表于 2020-3-28 14:30:15


n = int(input()) #输入一个值 n
if n>=3 and n<6:
    for i in range(10**(n-1),10**n): #当n=3时,i的取值区间为(100,1000)
      sum=0
      for j in map(int,str(i)): #将数字i拆分,比如123变成1,2,3,然后依次返回给j
            sum=sum+j**n      # sum返回j**n的和,比如n=3时,sum=1**3+2**3+3**3
      if sum==i:   # 最后判断sum和i是不是相等,如果相等就输出显示
            print(i)
页: [1]
查看完整版本: 看不懂这个水花仙数题的答案求讲一下