欢迎光临我的blog!专栏记录本萌新初学python解题情况,欢迎大家交流思考
题目如上,难度适中
【解】
代码主要包括函数部分
def newlist(i):
l=[]
m=[]
for j in range(pow(10,i-1),pow(10,i)):
m=list(map(int,str(j)))
sum=0
for k in range(len(m)):
sum=sum+pow(m[k],i)
if sum==j:
l.append(sum)
return l
*要寻找i位数的水仙花数,我们需要在10^(i-1)~10^i之间寻找
*要将每次判断的数j,提取各位数存放在列表m中,用到
m=list(map(int,str(j)))
这样的map函数,需要掌握
*读取数j的每一位数字,判断是否满足水仙花数的要求,若满足,添加到“l“这个列表中,函数返回l
之后只要添加输入和输出即可
i=int(input())
#输入要寻找水仙花数的位数i
print (newlist(i))
#以列表形式输出满足的水仙花数
完整代码如下
i=int(input())
def newlist(i):
l=[]
m=[]
for j in range(pow(10,i-1),pow(10,i)):
m=list(map(int,str(j)))
sum=0
for k in range(len(m)):
sum=sum+pow(m[k],i)
if sum==j:
l.append(sum)
return l
print (newlist(i))
运行结果:
水平有限,请多多包涵!
欢迎在评论区发表您的意见!!谢谢啦