我正在玩CodeWars,但由于超时而无法执行我的代码。
https://www.codewars.com/kata/playing-with-digits/train/python 有到kata的链接。
def dig_pow(n, p):
x = 0
for i in str(n):
new_sum = int(str(n)[1]) ** (p+int(i)-1)
while x <= new_sum/2:
for x in range(int(round(new_sum/2))):
if x * n == new_sum:
return x
return -1
由于超时,无法验证我的推理。
答案 0 :(得分:0)
似乎您用while
语句陷入了无限循环,因此在Codewars平台上触发了超时。
尝试简化此Kata的解决方案,此处无需使用while
循环,请考虑您必须返回的值。
(提示:尝试使用%
运算符检查一个值是否可以除以另一个而没有余数)。