def getNarcissisticNumbers(n):
l =[]if n ==1:
l.append(0) #如果n等于1,那么上面for循环range(1,10),没有包括0,所以要额外添加0for i inrange(pow(10,n-1),pow(10,n)): #根据n的数目来确定i循环的范围。
if i == self.mut_exp_sum(n,*map(int,list(str(i)))):
l.append(i)return l
#求多个数的n次幂之和
def mut_exp_sum(n,*num): #这里选可变参数,计算每一位的n次幂
sumgg =0for c in num:
sumgg +=pow(c,n) 将每一个数都计算n次幂,然后相加
return sumgg
解释一下上面的if语句:
先用 list 把整数转换成单个的字符存入列表;
然后用 map + int 函数,把字符转换成单个的整数;
最后将其作为可变参数传入n次幂求和函数中,