Project Euler 问题 36
我现在在做第36题,我原以为这会很简单,但显然我错了。我想用Python来做这个(因为我对Python不太了解)。下面是我的代码。运行后我得到了19这个结果,但这显然是错的。我不知道我漏掉了什么。有没有什么建议(不需要直接修正代码)?我不想要正确答案或代码(甚至不需要指出我错误的具体位置)——只想要一个提示,让我朝正确的方向前进。
def isPolynomial(number):
if(str(number) == str(number)[::-1]):
return True
else:
return False
def isBinaryPolynomial(number):
binNum = bin(number)
binStr = str(binNum)[2:]
revbinStr = binStr[::-1]
if(binStr == revbinStr):
return True
else:
return False
count = 0
for i in range(1, 1000001):
if isPolynomial(i):
if isBinaryPolynomial(i):
count += 1
print count
4 个回答
1
来自 http://projecteuler.net/index.php?section=problems&id=36
找出所有小于一百万的数字,这些数字在十进制和二进制下都是回文数,然后把它们加起来。
1
这个问题是要你算数字的总和,而不是数量。而且这对你得到的答案没有影响,不过要注意,正确的词是“回文”,而不是“多项式”。
6
看起来你的代码是对的,但你需要仔细看看它让你提交的答案是什么。我不能说得更具体,不然就把答案给泄露了!