Autor
|
Tema: [RETO+PYTHON] A ver quien la tiene mas corta... (Leído 10,270 veces)
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Supongo que consideramos válido el resultado solo hasta 3999 no? porque no tengo manera de escribir una línea sobre la letra si me paso de eso Tengo que tener puesto el input()? Saludos
|
|
|
En línea
|
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
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Si, solo hasta el 3999... y si, tambien has de añadir un input()
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
No se por que, pero se me hace que tienes algo mucho más corto No he controlado es que los números no sean mayores a 3999, pero no creo que sea necesario mientras funcione para los de abajo n=input() s=1000,500,100,50,10,5,1 l='MDCLXVI' r='' for i in range(7): if n>s[i]: r+=n/s[i]*l[i] n%=s[i] print(r)
No sabía si contaban tabulaciones y saltos de línea, así que tal vez podría ahorrarme un par de caracteres Saludos
|
|
« Última modificación: 16 Diciembre 2010, 18:54 pm por Novlucker »
|
En línea
|
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
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Muy bueno Doy un par de dias y si nadie mas se anima a participar pongo mi super codigo Un saludo
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Eso quiere decir que tienes uno más corto? cuanto más corto? Ese lo hice en un rato, ya vas a ver!
|
|
|
En línea
|
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
|
|
|
SmartGenius
Desconectado
Mensajes: 181
:P
|
Lo hice en batch (ya saben, me gustan los retos ) @Echo Off Setlocal enabledelayedexpansion Title Number to Roman Conversion
::Coded by SmartGenius
Set "R=1" Set "R_1=. M MM MMM" Set "R_2=. C CC CCC CD D DC DCC DCCC CM" Set "R_3=. X XX XXX XL L LX LXX LXXX XC" Set "R_4=. I II III IV V VI VII VIII IX"
:Input Set /p "N=Enter Number > " If Not Defined N Cls & Goto :Input If 0 GEQ %N% (Echo.Fuera de Rango&Goto :Input) If 3999 LSS %N% (Echo.Fuera de Rango&Goto :Input)
:Split Set /a "M_O=N%%10" Set /a "M_T=(N%%100)-M_O" Set /a "M_C=(N%%1000)-(M_T+M_O)" Set /a "M_M=N-(M_C+M_T+M_O)"
:Convert Set "Sp= %M_M:~0,1%%M_C:~0,1%%M_T:~0,1%%M_O:~0,1%" :R_to_N If 5 EQU %R% (Set "RF=!RF:.=!"&Goto :Show) Set /a "T=!Sp:~%R%,1!+1" For /f "tokens=%T%" %%b in ('Echo.!R_%R%!') do (Set "RF=!RF!%%b") Set /a "R+=1" Goto :R_to_N
:Show Echo. Number = %N% Echo. Roman = %RF% Echo. Pause Exit Aunque obviamente con las capacidaddes de los otros lenguajes se hace mas corto el codigo xD Saludos.
|
|
|
En línea
|
|
|
|
ghastlyX
Ex-Staff
Desconectado
Mensajes: 1.900
|
Pongo una versión recursiva un poco más corta: x=1000,500,100,50,10,5,1 c='MDCLXVI' def f(n,p): return n/x[p]*c[p]+f(n%x[p],p+1)if n else'' print f(input(),0)
Son 113 carácteres según wc.
|
|
|
En línea
|
|
|
|
lucasfava
Desconectado
Mensajes: 15
|
soy novato en python, pero una idea posible seria usar una base de datos, y que revise ahí
|
|
|
En línea
|
|
|
|
braulio--
Wiki
Desconectado
Mensajes: 896
Imagen recursiva
|
soy novato en python, pero una idea posible seria usar una base de datos, y que revise ahí No sé yo, probablemente uses mas carácteres creando la conexión y ejecutando la consulta que de otra forma. De todas formas, no creo que eso valga.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Un reto interesante....... a ver quién se le mide
« 1 2 3 »
Hacking
|
Alberto M
|
22
|
15,190
|
13 Abril 2011, 22:24 pm
por charrygarcia
|
|
|
Reto/Juego Ejercicios en Python
« 1 2 3 4 5 »
Ejercicios
|
Novlucker
|
47
|
35,696
|
20 Diciembre 2010, 06:47 am
por [L]ord [R]NA
|
|
|
Reto: Números primos en python
Ejercicios
|
Novlucker
|
6
|
10,467
|
24 Noviembre 2010, 16:02 pm
por Novlucker
|
|
|
[RETO+Python] A ver quien la tiene mas corta... (v2)
« 1 2 3 4 »
Scripting
|
Karcrack
|
33
|
13,124
|
14 Enero 2011, 15:15 pm
por mr.blood
|
|
|
[RETO+Python] Buscando rangos
« 1 2 »
Scripting
|
Novlucker
|
13
|
8,194
|
31 Enero 2011, 18:30 pm
por Karcrack
|
|