höchste Palindrom mit 3-stelligen zahlen in python

Problem In 4 von http://projecteuler.net/ es sagt:

Ein Palindrom liest das gleiche in beide Richtungen. Das größte Palindrom aus dem Produkt von zwei 2-stelligen zahlen ist 9009 = 91 * 99.

Finden Sie die größte Palindrom aus dem Produkt von zwei 3-stellige zahlen.

Habe ich diesen code hier

def isPalindrome(num):
    return str(num) == str(num)[::-1]
def largest(bot, top):
    for x in range(top, bot, -1):
        for y in range(top,bot, -1):
            if isPalindrome(x*y):
                return x*y
print largest(100,999)

Es sollte das größte Palindrom, es spuckt 580085 was ich glaube richtig zu sein, aber das Projekt euler nicht so denken, habe ich etwas falsch hier?


Wenn ich verehrte die for-Schleife hatte ich nicht denken, es durch, ich entfernte das Ding, der überprüft, ob der größte, ich Dummerchen. Hier ist der funktionierende code

def isPalindrome(num):
    return str(num) == str(num)[::-1]
def largest(bot, top):
    z = 0
    for x in range(top, bot, -1):
        for y in range(top,bot, -1):
            if isPalindrome(x*y):
                if x*y > z:
                    z = x*y
    return z
print largest(100,999)

es spuckt 906609

Zur info die Antwort ist 906609
Durch welche zahlen?
Weil ich hab 995 * 583 = 580085
Dort gehen wir, ich Dummerchen
forum.projecteuler.net/... und insbesondere forum.projecteuler.net/viewtopic.php?f=50&t=1989

InformationsquelleAutor FabianCook | 2012-10-01

Schreibe einen Kommentar