[Hilo Oficial] Esto también es otro arte...el ARTE de programar - Versión para impresión +- 33bits (https://33bits.net/foro) +-- Foro: Temas de debate (https://33bits.net/foro/Foro-Temas-de-debate) +--- Foro: Off Topic (https://33bits.net/foro/Foro-Off-Topic) +--- Tema: [Hilo Oficial] Esto también es otro arte...el ARTE de programar (/Tema-Hilo-Oficial-Esto-tambi%C3%A9n-es-otro-arte-el-ARTE-de-programar) |
Re:Esto también es otro arte...el ARTE de programar - Led Zeppelin - 25-10-2012 Hola. Veo que os gustan los problemas matematicos, yo de estos me trague muchos en C. Por ejemplo recuerdo uno de separar los números en unidades, decenas, centenas ... etc, que me volvió completamente loco. Los que sí me encantaban son los de vectores, recuerdo cuando dimos los tridimensionales en .net, me engancharon muchisimo, al igual que los encriptadores en ascii. El próximo lo intento, ya que este lo habéis solucionado entre muchos, a ver si logro instalar algún compilador de Java, que a Vista por lo visto no le gusta ninguno. Un saludo. Re:Esto también es otro arte...el ARTE de programar - thewazaa - 25-10-2012 numero = n trabajo(numero, 0) funcion trabajo (numero, zero) ┬á si el numero es menor que 10 ┬á ┬á escribir numero y zero veces el 0 (y un espacio) ┬á sino ┬á ┬á trabajo (numero/10, zero+1) ┬á ┬á escribir numero%10 y zero veces el 0 (y un espacio) típica solución con función recursiva Re:Esto también es otro arte...el ARTE de programar - Margaruga - 25-10-2012 Ilustro el problema que dice Led sobre separar un número en centenas, decenas y unidades fusilando la solución de thewazaa. Código: # Python Re:Esto también es otro arte...el ARTE de programar - thewazaa - 25-10-2012 (25-10-2012 12:38)Margaruga link Ilustro el problema que dice Led sobre separar un número en centenas, decenas y unidades fusilando la solución de thewazaa.tu solucion no vale. Solo funciona hasta centenas... Y... El ponia etc. Vamos, el mios es capaz de trabajar con 148483833822844, por decir algo. Re:Esto también es otro arte...el ARTE de programar - Margaruga - 25-10-2012 Sí, mi solución no es buena ya que no es general. Sin embargo no acabo de pillar tu solución para un n = 30 por ejemplo Código: escribir numero%10 y zero veces el 0 (y un espacio) 30 % 10 = 0 + 0 * Zero = 0 En la llamada recursiva pasas 30 / 10 y zero + 1, 30 / 10 menor que 10 por lo tanto. Código: escribir numero y zero veces el 0 (y un espacio) 3 + 0 * 1 = ¿30? No acabo de pillarlo. EDIT : Vale sí, venía pensándolo por el camino a casa y tiene todo el sentido del mundo. Olvida lo que he dicho┬á : Re:Esto también es otro arte...el ARTE de programar - thewazaa - 25-10-2012 (25-10-2012 13:27)Margaruga link Sí, mi solución no es buena ya que no es general. Sin embargo no acabo de pillar tu solución para un n = 30 por ejemplo Revisa 1 trabajo 30, 0 2 trabajo 3, 1 -> pone 30 (3 y un 0)... vamos, las decenas. Vuelve a 1 done pone: 0 y 0 zeros. (las unidades, que no hay) Re:Esto también es otro arte...el ARTE de programar - Margaruga - 25-10-2012 Sí, sí, parezco idiota si le paso 30 y me devuelve 30 evidentemente lo está haciendo bien pero en el momento no sé en que estaba pensando, me parecía que había algo que no cuadraba┬á : No sé si antes me leiste thewazaa, te comentaba que el diseño de tu página me gusta y si te dedicabas al diseño/desarrollo web. Un saludo y gracias┬á :-* Re:Esto también es otro arte...el ARTE de programar - thewazaa - 25-10-2012 Correccion: numero = n trabajo(numero, 0) funcion trabajo (numero, zero) ┬á si numero >= 10^ (zero+1) ┬á ┬á trabajo(numero, zero +1) ┬á sino ┬á ┬á si zero = 0 ┬á ┬á ┬á ┬á escribir numero ┬á ┬á ┬á ┬á devolver 0 ┬á ┬á sino ┬á ┬á ┬á ┬á escribir numero/10^(zero) y "zero" veces el 0 ┬á ┬á ┬á ┬á devolver numero%10^zero Veamos : 3501 1: trabajo 3501, 0. Mas grande que 10, entonces... 2: trabajo 3501, 1, mas grande que 100, entonces... 3: trabajo 3501, 2, mas grande que 1000, entonces... 4: trabajo 3501, 3: mas pequeño que 10000, entonces: ┬á - escribir 3501/1000 (3), y 3 zeros: 3000 ┬á - devolver el resto de 3501/1000: 501 3: ┬á - escribir 501/100 (5), y 2 zeros: 500 ┬á - devolver el resto de 501/100: 1 2: ┬á - escribir 1/10 (0), y 1 zeros: 00 (podria poner una excepcion pero paso) ┬á - devolver el resto de 1/10: 1 1: ┬á - escribir 1, y 0 zeros: 1 ┬á - devolver 0 Se finí. El código anterior tenía algun que otro fallo bien tonto. Y si, soy informático. La web esa no la he hecho yo, es una plantilla normal y corriente de wordpress... y en su momento me dediqué bastante en el desarrollo wap, con motor propio... pero ahora estoy más enfocado a la parte de backend(mira que poner frontend). Ni ganas ni tiempo de hacer páginas web. El blog lo voy escribiendo porque me gusta como afronto las aficiones que tengo desde que lo tengo. No me pongo a analizar nada en detalle, trato más las sensaciones que me ha causado todo, desde un punto de vista personal... y sin notas. Re:Esto también es otro arte...el ARTE de programar - Juntacadaveres - 25-10-2012 Jobar, menos mal que no sabías si el hilo iba a tener éxito Margaruga, me voy una noche y cuando vuelvo esto está petado de código.┬á : He intentado no leer nada de lo que habéis puesto, a ver si esta tarde saco un ratín y me pongo con el problema... Re:Esto también es otro arte...el ARTE de programar - Margaruga - 25-10-2012 Pongo el link a tu solución en la primera página thewazaa que puede serle muy útil a alguien. Tener un sitio propio donde escribir es algo muy sano la verdad aunque a mí siempre me dio mucha pereza. @Junta, pues sí, se han animado varios a aportar su granito de arena, así da gusto Re:Esto también es otro arte...el ARTE de programar - Margaruga - 25-10-2012 Sigo a vueltas con el de dividir un número en unidades, decenas...etc Código: # Python Ahora creo que funciona bien para cualquier cifra. Re:Esto también es otro arte...el ARTE de programar - thewazaa - 25-10-2012 (25-10-2012 16:10)Margaruga link Sigo a vueltas con el de dividir un número en unidades, decenas...etcLo de convertir el número a string es válido... pero no tanto. El ejercicio de lo imprimir en númerajo es muy clásico, pues se basa en algo básico: imprimir un número (que es en base 8) en pantalla, en base 10. Es algo que hacen los ordenadores continuamente! (tipica cosa que está ya a nivel de hardware) Tu solución va bien... diria que es mas adecuada que la mía, si la corriges, pero tendrías que mirar de quitar todo lo que haga referencia a conversión a string. Piensa en números. Además, que cuando te pones a trabajar con strings... Strnum = string(numero) for int i=0 i<strnum.length;i++ escribir strnum[i] y strnum.length-i-1 zeros Pierde toda la gracia |