在四处寻找类似的问题,但没有找到任何问题,我会尝试一下,在这里提出。我会尽量具体化。 使用Python,我试图编写一段代码,它可以遍历所有可能的Harshad数字,并在一个列表中返回Harshad数字的数量。为此,我首先提出了一个方法isHarshad,它可以判断列表中的一个数字是否是Harshad数字。然后,我实现了这个方法来只打印列表中的Hardshad数字。在
def isHarshad(i):
l = list(str(i))
a = sum([int(e) for e in l])
if a == 0:
return False
if i % a == 0:
return True
else:
return False
def ithHarshad(i):
a = []
count = 0
top = 999999999
for x in (range (1,top)):
if isHarshad(x):
a = a + [x]
count += 1
if count == i:
print(a)
ithHarshad(25)
运行这个代码返回前25个Harshad数字,这就是我想要它做的。 现在我的问题是:有没有可能形成一个循环来检查Harshad数的一个范围,而不用像我的代码中那样生成一个“top”变量?循环到像999999这样的任意数字会感觉很混乱。在
我希望我的问题有点清楚,并提前感谢您的任何意见!在
我不太清楚“检查范围”是什么意思。您的意思是要显示
start
到end
之间的所有Hardshad数字吗?是真的吗,你可以这样做:尝试用
while True:
替换它,并在生成足够的数字时中断循环。在您的代码中,您正在运行所有可能的数字,这是非常低效的。在这将继续向
x
添加1,直到计数终止为止。在感谢你的反馈,用了一段时间真的:为我工作。 我的解决方案是:
相关问题 更多 >
编程相关推荐