我今天的问题是,我是否沿着正确的欧拉145道路行驶,并且是否有点效率。我的大部分精力都在下降,只有我的一个Defs给我带来了麻烦:int(str(numb)[:i])%2 == 0进行均匀检查。我的代码如下。第10行是问题点def reversed(reg): # to flip the number around fliped = str(reg)[::-1]; return(int(fliped)); # Return it as a int. def allEvenDigits(numb): # This is the issue one hasEvenNumb = False; for i in range(0, len(str(numb))): if int(str(numb)[:i])%2 == 0: # if int of the string numb's char at i is even hasEvenNumb = True; ## return that it is true break; # why go on if we found a even. return(hasEvenNumb);for i in range(1, 1000): # its 1000 to save a few minutes revNumb = reversed(i); total = revNumb+i; if(allEvenDigits(total)): print(i, "+" , revNumb, "=",Total);
3 回答

子衿沉夜
TA贡献1828条经验 获得超3个赞
def sumrevers(x):
summation = x + int(str(x)[::-1])
if summation % 2 != 0: return summation
def checknum(x):
if not (str(x)[-1] == "0") or (str(x)[0] == "0"):
if type(sumrevers(x)) == int:
num = str(sumrevers(x))
checklis = [k for k in str(num)]
if all(int(i) % 2 != 0 for i in checklis): return True
cnt = 0
for i in xrange(1, 1000000001):
if checknum(i):
cnt += 1
print cnt
添加回答
举报
0/150
提交
取消