- 帖子
- 4
- 精华
- 0
- 积分
- 35
- 阅读权限
- 10
- 注册时间
- 2019-7-29
- 最后登录
- 2019-12-10
|
def amu(n):
for j in range(1,n + 1):
# a = str(j).split()
x = len(str(j))
m = []
# print(m)
for i in str(j):
s = int(i) ** x
# print(x)
m.append(s)
p = sum(m)
# print(p)
r = []
if j == p:
r.append(j)
return r
amu(1000)
我这个为什么执行完出不来结果呢?...
还有个问题。。老师的答案:
def judge_arms(i): # 将该数转换为字符串 123 -> '123' tem = str(i)
# 按照 n位正整数等于其各位数字的n次方 进行求和 # sum = 1**3 + 2**3 + 3**3 tem_sum = sum([int(j)**len(tem) for j in tem])
# 判断求和之后的数是否和原数相等 if i == tem_sum:
return True
'''寻找小于 1000 的阿姆斯特朗数逐一遍历小于 1000 的数判断是否为阿姆斯特朗数'''
def arms(N): for i in range(1, N+1):
if judge_arms(i): print(i)arms(1000)
第3行,sum()里面的内容为什么两边要加上[]呢?~
|
|