Numeri palindromi

Olimpiadi di Informatica – Fase scolastica del 13-11-2014 – Quesito 3

Un numero palindromo è un numero che produce la stessa sequenza di cifre sia che venga letto da sinistra verso destra sia da destra verso sinistra.
Per esempio, 6374554736 e 14741 sono numeri palindromi.
Quanti numeri palindromi ci sono tra 100 e 1000?

Vedi la discussione.

Soluzione 1

n = 100*c1+10*c2+c1

conto = 0
for c1 in range(1, 10):
    for c2 in range(0, 10):
        n = 100*c1+10*c2+c1
        print(n, end=" ")
        conto += 1
print()
print(conto)

Soluzione 2

Controlla, per ogni numero candidato, se la cifra delle centinaia c e la cifra delle unità u sono uguali

START = 100+1
STOP  = 1000
conto = 0
for n in range(START, STOP):
    c = n//100
    u = n%10
    if(c == u):
        print(n, end=" ")
        conto += 1
print()
print(conto)

Soluzione 3

Il numero n diventa una stringa sn,
Il 1° carattere, sn[0], è uguale al 3° carattere, sn[2]?

START = 100+1
STOP  = 1000
conto = 0
for n in range(START, STOP):
    sn = str(n)
    sc = sn[0]
    su = sn[2]
    if(sc == su):
        print(sn, end=" ")
        conto += 1
print()
print(conto)