用我的代码,我会,除了循环一次后,他会跳到列表中的下一个数字,但他没有。有人知道我的代码有什么问题吗?你知道吗
for j in range(len(k)):
s = [int(i) for i in str(k[j])]
这两行代码是我正在解决的一个更大问题的一部分。你知道吗
def kaprekarseries(n):
"""
>>> kaprekar_series(677)
[677, 99, 0]
>>> kaprekar_series(9876)
[9876, 3087, 8352, 6174]
>>> kaprekar_series(55500)
[55500, 54945, 50985, 92961, 86922, 75933, 63954, 61974, 82962]
"""
k = list()
k.append(n)
count = 0
while count < 10:
for j in range(len(k)):
s = [int(i) for i in str(k[j])]
m = sorted(s, key=int, reverse=True)
m2 = int(''.join(str(i) for i in m))
l = sorted(s, key=int)
l2 = int(''.join(str(i) for i in l))
g = m2 - l2
k.append(g)
if [item for item in k if k.count(item) <= 1]:
count += 1
else:
return k
在开始循环之前,列表k只追加了一个元素。所以它是一个长度的列表,所以它只运行一次。你知道吗
重新考虑你的算法。你知道吗
相关问题 更多 >
编程相关推荐