Saltar al contenido

Numeros capicua


Toldeman

Recommended Posts

publicado

Hola a todos.

Este post va en referencia a una pregunta que me hizo mi hijo el domingo pasado sobre que eran los números capicuas. Después de explicárselo, empece a pensar en Excel (vicio que ya tiene uno) y de como podría averiguar si un numero era capicua o no solamente con ponerlo en una celda.

Bueno después de unas cuantas pruebas y comerme un poco la cabeza, di con una forma de hacerlo, seguramente no haya descubierto la polvora, pero me pareció interesante compartirlo.

Lo que no se es si se podrá hacer sin uso de auxiliares.

Un saludo amigos.

Libro1.zip

publicado

Bueno amigo, como curiosidad para explicar a tu hijo, pues vale aceptamos barco, como otras de las muchas cosas que como muy bien dices tú, pensamos en excel, máxime cuando tan solo viendo el número podemos saberlo, pero fuera de esto, NO COMMENT. . . . .

Solo decir que cada uno ocupa su tiempo en lo que estime oportuno, y sobre todo los domingos que en el foro no hay ni Dios, jejejejjeeee, espero no te molestes amigo.

Y con referencia a tu única pregunta, supongo que con una super fórmula, podría salir, pero siempre será más fácil de entender y realizar, si lo desarrollamos con auxiliares, ya sabes que yo soy partidario de su utilización, ya que luego siempre tenemos la opción de ocultarlas y no se vean.

Saludos, Germán.

publicado

Vale germán, aceptamos pulpo como animal de compañía, ya se que nada mas mirar un numero sabemos si es o no capicua sobre todo si tiene dos cifras, yo por lo menos tengo mas dificultad cuando hay mas dígitos (1397875787931), como también se diferenciar nada mas ver si en una celda hay escrito "juan perez" el nombre del apellido, pero hay gente que se entretiene o necesita separarlos de una lista y utiliza una hoja de calculo para hacerlo, yo en este caso ha sido por entretenimiento.

En cuanto al uso de auxiliares estoy totalmente de acuerdo contigo, nos facilita mucho el trabajo y el tener que pensar en megaformulas.

Un saludo compañero.

publicado

Hola amigo,

Vale germán, aceptamos pulpo como animal de compañía, ya se que nada mas mirar un numero sabemos si es o no capicua sobre todo si tiene dos cifras, yo por lo menos tengo mas dificultad cuando hay mas dígitos (1397875787931), como también se diferenciar nada mas ver si en una celda hay escrito "juan perez" el nombre del apellido, pero hay gente que se entretiene o necesita separarlos de una lista y utiliza una hoja de calculo para hacerlo, yo en este caso ha sido por entretenimiento

de verdad espero que no te haya molestado, entiendo perfectamente lo que comentas y explicas, ya que en muchos casos yo hago lo mismo, intentar plasmar algo que se me ocurra o ves en excel, si recuerdas algún tema como "Constantes Kaprekar" ¿eso pa qué sirve? excepto para eso, para entretenerme y acaso si hay alguno que no lo supiera, pues como curiosidad.

Así que de todo corazón espero que no te haya molestado mi comentario, ya que para nada he querido que sea ofensivo, más bien todo lo contrario, entre nosotros algo divertido.

Y si así hubiera sido, pedirte disculpas por ello.

Un abrazo, Germán.

publicado

German amigo, sin problemas, no tienes porque disculparte, para nada me has ofendido me caes demasiado bien para que me enfade.

Que todos los problemas fueran estos.

Recibe un abrazo cordial.

Juan.

publicado

Hola;

perdonar mi intromisión, pero me gustaria decir, que me ocurre como a Toldeman, siempre mirando la forma de hacer las cosas en excel, jejje. Aunque ahora con el trabajo tengo muy poco tiempo y me paso muy poco por el foro pero bueno. esta noche cuando llegue a casa intentaré buscar una solución que me ronda por la cabeza, seguramente solo podrá estar en mi cabeza, jejej, pero voy a intentarlo, porque, me planteo:

Un numero capicua es aquel que empieza y acaba por el mismo numero (como pasa en el dominó), entonces, no sería mas sencillo sacar el primer numero, sacar el ultimo y compararlos, si son iguales "capicua" sino, "no capicua".

Se puede hacer?, o me estoy metiendo donde no me llaman, intentare esta noche a ver si me sale.

-------------------------------------------

no deberia (como me vean en el trabajo), adjunto un ejemplo

Perdona Toldeman si me meto donde no me llaman.[ATTACH]18630.vB[/ATTACH][ATTACH]18630.vB[/ATTACH]

Un Saludo

Jose Maria.

capicua.zip

publicado

Hola:

No puedo dejar pasar esta nueva ocasión de meterme con vosotros: los formulianos.

Es que no escarmentais, ¡¡¡ Dios mío !!! han sido necesarias 18 fórmulas, cuando con 4 líneas en una macro se soluciona.

¿ A que esperais a pasaros a las macros ?

Aquí os suelto la macro para que disfruteis con ella.

Bueno después de estas bromas os mando un abrazo y la bendición "Urbi et orbi".

Macro, "El azote formuliano".

Libro1 con macro.zip

publicado

Y porque tantas lineas (6) Macro Antonio,

Function EsCapicua(sValor As String)
EsCapicua = IIf(sValor = StrReverse(sValor), "Capicua", "No Capicua")
End Function
[/CODE]

Saludos

publicado
Y porque tantas lineas (6) Macro Antonio

Function EsCapicua(sValor As String)
EsCapicua = IIf(sValor = StrReverse(sValor), "Capicua", "No Capicua")
End Function
[/CODE]

¡¡¡ Absolutamente genial !!! He estado pensando en como eliminar el bucle, y tu solución no se me ha ocurrido.

Saludos

publicado
¡¡¡ Absolutamente genial !!!
...ps es por que viene de un 'Genio',con todo y lampara,ya que nos 'ilumina'.......:D

un saludo Saile..como anda el clima por allá!?

ya sabes en Acapulco el invierno es de 25ºC y es como si fuera punto de 'congelacion',pero aun disfrutamos de suficiente 'calorcito',creo que eso será para finales de dic. y principios de enero :mad:

publicado

sailepaty, la verdad es que los formulianos hechamos en falta StrReverse como función genuina de Excel.

Para números muy largos propongo reducir la comparación a la mitad:

Function EsCapicua(sValor As String) As String
Dim nLong As Long
nLong = Len(sValor) / 2
EsCapicua = IIf(Left(sValor, nLong) = StrReverse(Right(sValor, nLong)), "Capicua", "No Capicua")
End Function[/CODE]

La función StrReverse sirve para dar la vuelta a los caracteres en idiomas que se escriben de derecha a izquierda.

publicado

Macro, me alegra te haya agradado, recibe un cordial abrazo.

ST, El clima nada mal por ahí entre los 15-20ºC, mucho mejor que los 35-45ºC que tuvimos en verano.

En fin que se le va a ser, tu sigue sufriendo en ese bello puerto. Espero estar por el D.F. para mediados de diciembre, así que me voy acercando.

Pedro, tienes toda la razón. Tener una función como strReverse y una para Concatenar rangos como funciones sería genial

Saludos a todos

publicado
Y porque tantas lineas (6) Macro Antonio,

Function EsCapicua(sValor As String)
EsCapicua = IIf(sValor = StrReverse(sValor), "Capicua", "No Capicua")
End Function
[/CODE]

Saludos

Wao! que excelente funcion Sailepaty de verdad que en pocas lineas a quedado bien, Toldeman gracias por tu idea y a todos por seguir demostrando de como compartir con los demas

Saludos a todos

  • 2 months later...
publicado

Una fórmula para saber si es capicua un número en A1 con formato texto:

=SI(A1=TEXTO(SUMAPRODUCTO(EXTRAE(A1;FILA(INDIRECTO("1:" & LARGO(A1)));
1)*10^(FILA(INDIRECTO("1:" & LARGO(A1)))-1));REPETIR("0";LARGO(A1)));"Capicua";"No capicua")[/CODE]

NOTA: En Excel 2010, sustituir EXTRAE por MED.

Se me acaba de ocurrir al responder a este tema:

publicado

Pedro

Eso mismo pense cuando aportaste esa formula en ese tema, pero parece que da error, por lo que solo agregue esto --


=SI(A1=--TEXTO(SUMAPRODUCTO(EXTRAE(A1,FILA(INDIRECTO("1:"&LARGO(A1))),1)*10^(FILA(INDIRECTO("1:"&LARGO(A1)))-1)),REPETIR("0",LARGO(A1))),"Capicua","No capicua")
[/CODE]

Saludos mi estimado

publicado

verzulsan, la mía te da error porque hay que sustituir la maldita función MED de Excel 2010 por EXTRAE (Edito el post #14)

La de Gerson porque usa comas en lugar de puntos y comas (No entiendo el -- delante de la función TEXTO)

La función SUMAPRODUCTO es matricial pero NO hay que teclear CTRL+MAYÚS+ENTRAR.

publicado

Pedro

Los dobles guiones o dobles resta son para convertir los valores booleanos (Verdadro y Falso) a 1 o 0, recuerda que la funcion TEXTO lo presenta como texto (algo asi 212="212") por lo que la formula al final (=212=--"212") queda asi =212=212 que es igual a VERDADERO

Adjunto un compendio documento de SUMAPRODUCTO espero en tiempo libre lo lean

Saludos a todos

Condiciones múltiples con SUMAPRODUCTO.zip

publicado

Aclarados las "rayadas", quiero decir que en tu fórmula las dos rayas --TEXTO() convierten el texto en número porque lo comparas con un número en A1.

Si A1 es un número sugiero mejor usar esta otra fórmula para no tener que reconvertir textos, ni negarlos dos veces:

=SI(A1=SUMAPRODUCTO(EXTRAE(A1;FILA($A$1:INDICE($A:$A;LARGO(A1);1));1)
*10^(FILA($A$1:INDICE($A:$A;LARGO(A1)))-1));"Capicua";"No capicua")[/CODE]

Que también vale si A1 es texto con solo multiplicar A1 por uno en la primera parte de la fórmula:

[CODE]=SI(A1*1=SUMAPRODUCTO(EXTRAE(A1;FILA($A$1:INDICE($A:$A;LARGO(A1);1));1)
*10^(FILA($A$1:INDICE($A:$A;LARGO(A1)))-1));"Capicua";"No capicua")[/CODE]

Observa que, si A1 es un número en formato texto, sirve para números con ceros a la izquierda, como [b]0123210[/b]

Gerson, es un placer discutir contigo :rolleyes:, entendido como dice la RAE:

[i][b]Examinar atenta y particularmente una materia. [/b][/i]

publicado

Gracias Gerson por el archivo y gracias Pedro por la explicacion, ahora si que va.

Por cierto, ¿habeis notado que el valor absoluto de la mitad entera de la parte izquierda de un numero menos el valor absoluto de la mitad entera de la parte derecha da siempre un multiplo de 9? Estoy convencido que se puede resolver con una formula que no use indices ni sumaproducto, tan solo con una formula de logica pura y dura.

publicado

Pedro

Honestamente no quice modificar tu formula (ya hace mucho que utilizo estos metodos "*1, -- , Sumaproducto") que estaba enfocada para otra necesidad, aunque a los -- les he encontrado mucha ventaja, porque en algunos casos agiliza los calculos

Saludos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.