Python 项目问题36

Python 项目问题36,python,Python,我想这很简单。和往常一样,我显然错了。我正试图用Python实现这一点(因为我不懂Python)。我的代码如下。我得到19作为输出,这显然是不正确的。我不知道我错过了什么。如有任何建议(无需修改代码),将不胜感激。我不想要正确的答案或代码(甚至是我错误的确切位置)-只是一个提示,让我走上正确的方向 def isPolynomial(number): if(str(number) == str(number)[::-1]): return True else:

我想这很简单。和往常一样,我显然错了。我正试图用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


查找所有以10为基数和以2为基数的回文数小于一百万的数字的总和。

看起来您的代码是正确的,但您需要仔细阅读它要求您提交的答案。我不能再具体了,除非把它说出来

这个问题问的是数字的总和,而不是计数。同样,这对你得到的答案没有影响,但是这个词是“回文的”,而不是“多项式的”

#-*-编码:utf-8-*- """ @作者:neo """ def箱(x): 结果=“” x=int(x) 当x>0时: mod=x%2 x/=2 结果=str(mod)+结果 返回结果 打印总和(X范围(11000001)中的i对i)\ 如果str(i)==str(i)[::-1]和str(bin(i))==str(bin(i))[::-1])
英雄联盟哇!我真不敢相信我错过了。我还认为我可能需要解释一种情况,比如二进制中的110,我猜我需要解释倒转时的前导零。只是好奇,这东西需要多长时间才能运行?这里没有区别,但问题要求的数字小于1000000。您的范围包括1000000。
sum([x代表范围(1000000)中的x,如果str(x)==str(x)[::-1]和bin(x)[2::==bin(x)[:1:-1]])
注意,您可以通过简单地返回测试来简化函数返回中的if语句。i、 例如,
return str(number)==str(number)[::-1]
@Blindy-我没有计时,但可能需要1-2秒?谢谢你指出这一点。这就是我匆匆忙忙得到的。我的愚蠢是无止境的,我应该投反对票! # -*- coding: utf-8 -*- """ @author: neo """ def bin(x): result = '' x = int(x) while x > 0: mod = x % 2 x /= 2 result = str(mod) + result return result print sum(i for i in xrange(1,1000001)\ if str(i)==str(i)[::-1] and str(bin(i))==str(bin(i))[::-1])