Título: problema en reto de programacion Publicado por: daryo en 21 Diciembre 2014, 14:56 pm entenderia que nadie comente xDD.
es un juego de programacion uno de los niveles hay que pasar una cadena ascii a su equivalente binario para luego pasar el binario a su sistema"chuck norris". http://www.codingame.com el ejemplo que dan es c= 1000011 chuck norris c=0 0 00 0000 0 00 cc=10000111000011 chuck norris cc= 0 0 00 0000 0 000 00 0000 0 00 si comienza en 0(el primer bloque) los que le siguen(segundo bloque) hasta el espacio son unos y si comienza en 00 los ceros que le siguen son ceros hasta el espacio mi codigo es: Código pero no esta funcionando como deberia con c y cc funciona, o si le pasan % pero si le pasan: http://www.codingame.com/ide/fileservlet?id=373674626189 la salida deberia ser: http://www.codingame.com/ide/fileservlet?id=373685797831 pero no es alguna idea? Título: Re: problema en reto de programacion Publicado por: Yoel Alejandro en 21 Diciembre 2014, 17:14 pm Hola daryo. Estoy trabajando en tu proyecto pero por favor explícame que significa la parte de:
Citar unomas=1; //si es menor a el codigo ascii 64 se le pone un cero al comienzo eso es uno mas ??? Título: Re: problema en reto de programacion Publicado por: daryo en 21 Diciembre 2014, 17:29 pm Hola daryo. Estoy trabajando en tu proyecto pero por favor explícame que significa la parte de: ok lo que sucede es que caracteres como % en binario son??? 010 0101 mientras que por ejemplo el caracter A es 100 0001 010 0101 100 0001 asi que el primer digito es cero, un int en c nunca comienza por cero simplemente lo borra asi que lo agrego al array de esa forma xD . asi marco unomas=1 entonces ya tiene un caracter y comienza desde ahi si por otro lado es cero pues no hace diferencia Título: Re: problema en reto de programacion Publicado por: Yoel Alejandro en 21 Diciembre 2014, 18:02 pm Ok, entiendo. Bueno yo humildemente hubiera trabajado la parte de convertir a chuck_norris de una manera diferente y creo que más breve. Tomo el array binario y agarro el primer digito. Luego reviso el segundo, tercero, etc, y así hasta encontrar uno diferente al primero. De esa manera delimito un primer bloque y además llevo la cuenta de la cantidad de dígitos que posee.
Luego, tomo como dígito de prueba el que encontré que era diferente al primero (justo donde se terminó el primer bloque), y repito el proceso para ver cuántos son iguales a este de prueba. Repitiendo el proceso logro convertir toda la secuencia. Por ejemplo, cuando paso el carácter 'A' (ASCII 65), su binario es '1000001', que el programa me convierte a: 0 0 00 00000 0 0 que según creo es lo que se quiere, ¿no? Un detalle, reutilizar apropiadamente el espacio de variables y no desperdiciar memoria, empleé la variable 'letra' para representar los dígitos del binario. El programa, con mi modificación propuesta, es: Código
Te muestro la salida generada con la cadena de entrada "ABC": ABC binario: 1000001 binario: 1000010 binario: 1000011 0 0 00 00000 0 0 | 0 0 00 0000 0 0 00 0 | 0 0 00 0000 0 00 | donde he usado el separador '|' para distinguir a la vista un código del otro (aunque no se si realmente necesitas eso). Revisa y me comentas!!! :) Título: Re: problema en reto de programacion Publicado por: daryo en 21 Diciembre 2014, 22:29 pm gracias probare tu solucion , tengo la mania(no se si buena o mala xD) de usar la minina cantidad de librerias cuando uso c xD .
Título: Re: problema en reto de programacion Publicado por: Yoel Alejandro en 22 Diciembre 2014, 01:19 am Pues en ese caso no hay problema, pues getchar() requiere <stdio.h>, que ya la tienes.
|