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?
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)