Python - Algoritmo correcto? Capicua o no.

   
Vista:

Algoritmo correcto? Capicua o no.

Publicado por Algoritmo correcto? Capicua o no. (1 intervención) el 08/03/2012 05:27:14
Hola, me gustaría saber si este algoritmo es correcto, el objetivo es : "Inicializar una variable con un valor aleatorio comprendido entre 1 y 1000000, verificar si es capicúa, es decir si se lee igual de izquierda a derecha como de derecha a izquierda."

El código correcto seria:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import random
 
valor=random.randint(1,1000000)
print valor
print '<br>'
cadena=str(valor)
indice=-1
iguales=0
for x in range(0,len(cadena)/2):
    if cadena[x]==cadena[indice]:
        iguales=iguales+1
    indice=indice-1
if iguales==(len(cadena)/2):
    print 'Es capicua'
else:
    print 'No es capicua'


Pero yo, sin mirar esto, codifiqué de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import random
 
x=random.randint(1,1000000)
print x
print "<br>"
cadena=str(x)
algo=0
otro=-1
another=0
for x in range(0,len(cadena)/2):
    if cadena[algo]==cadena[otro]:
        algo=algo+1
        otro=otro-1
        print "Es capicua"
    else:
        print "No es capicua"


El programa funciona. Si cambian el valor de x a un numero capicua en vez de uno aleatorio van a confirmarlo. Pero me gustaría saber si de esta segunda forma es correcta.

También me gustaría comprender lo que se hace en el primer algoritmo, lo que ocurre después de la condicion "if cadena[x]==cadena[indice]:" todavía no está dentro de lo que yo se del lenguaje y me gustaría comprenderlo.

Saludos y gracias de antemano!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Algoritmo correcto? Capicua o no.

Publicado por xve (1235 intervenciones) el 23/11/2012 10:59:31
Aquí tienes el código correcto que te busca un numero que sea capicua: http://www.lawebdelprogramador.com/codigo/Python/2251-Buscar_un_numero_que_sea_capicua_en_python.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar