[RETO+PYTHON] A ver quien la tiene mas corta...

Iniciado por Karcrack, 16 Diciembre 2010, 17:14 PM

0 Miembros y 2 Visitantes están viendo este tema.

ace332

#10
Muy buena, SmartGenius! y en batch  :o
Los codes que pusieron en Python no funcionan  :-X Para ciertos valores dan resultados erroneos. Por ejemplo, al introducir como dato 1999 devuelve como resultado MDCCCCLXXXXVIIII cuando la respuesta correcta es MCMXCIX.

Saludos y disculpen las molestias  >:D

Karcrack

Como dice BeetleJuice vuestros codigos dan resultados equivocados... el de Novlucker, por ejemplo, dice que 1000 es DD, siendo M en realidad...

Novlucker

Cita de: Karcrack en 17 Diciembre 2010, 21:00 PM
Como dice BeetleJuice vuestros codigos dan resultados equivocados... el de Novlucker, por ejemplo, dice que 1000 es DD, siendo M en realidad...
Y por que no lo dijiste antes? :¬¬ lo probaste tanto como yo, vi que funcionaba para 1337 y listo :xD

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Karcrack

 :laugh: Pues ale! A arreglarlo! Yo voy a ver si consigo acortar mi super codigo juasjuas >:D :xD

Novlucker

Que nadie diga que no soy práctico :laugh:

Código (python) [Seleccionar]
n=input()
s=1000,900,500,400,100,90,50,40,10,9,5,4,1
l='M','CM','D','CD','C','XC','L','XL','X','IX','V','IV','I'
r=''
for i in range(13):
    if n>=s[i]:
        r+=n/s[i]*l[i]
        n%=s[i]
print(r)


También puedo ganar algunos caracteres haciendolo de manera recursiva como ghastlyX, pero la verdad pierde la gracia copiarle a los demás :¬¬

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

[Izra76]

Entonces cuál es el super código más corto?

Karcrack

Perdon, se me murio el portatil, y he tenido que comprar otro... asi que bueno, hasta que vuelva a organizar el PC no sere capaz de reprogramar la funcioncita... Espero no olvidarme :laugh:

Por ahora gana Novlucker, ya que es el unico que ha presentado una version funcional (en Python)...

Gabriela

Jope!!!!  :xD Con ese título quedo fuera de toda competencia!! :xD :xD :xD


Así que es Novlucker... el que va ganando, las cosas que se entera una  ;D  sobre las capacidades funcionales de los compis.  :P

Gabriela
Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

Karcrack

He aqui la super-version :xD
Código (python) [Seleccionar]
n=input()
r=''
for x,y in zip([1000,900,500,400,100,90,50,40,10,9,5,4,1],'M CM D CD C XC L XL X IX V IV I'.split()):
    while n>=x:
        r+=y
        n-=x
print r

:)

Novlucker

#19
Ahora si, no se me había ocurrido usar zip, ni que luego de modificar mi code para que estuviese correcto, me ahorraba 16 caracteres haciendolo con split ;D
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein