6
votes

Ce numéro romain pour le code de convertisseur entier peut-il être plus court?

95 octets actuellement en Python xxx pré>

Voici les rares résultats de test, il devrait fonctionner pendant 1 à 3999 (supposer que l'entrée est valide uniquement) P>

>>> r("I")
1
>>> r("MCXI")
1111
>>> r("MMCCXXII")
2222
>>> r("MMMCCCXXXIII")
3333
>>> r("MMMDCCCLXXXVIII")
3888
>>> r("MMMCMXCIX")
3999


4 commentaires

Vous pouvez tirer parti de la solution inversée comme celle-ci. pour x dans la plage (1 4000): si Inttoroman (x) == entrée: pause ;)


Votez pour fermer sur le fait que vous essayez d'obtenir une meilleure solution de golf de code que je parie;) pas vraiment ...


Imm, j'aime voir diverses implémentations et dans différentes langues, c'est tout. C'est ma propre implémentation. Je crois qu'il y a beaucoup de geeks qui peuvent faire beaucoup mieux que cela. C'est pourquoi je poste ceci.


Je vote pour fermer cette question comme étant hors sujet car ce n'est pas du golf de code.


4 Réponses :



1
votes

Définir réellement mon propre de sopried est plus petit, un total de 98 strong> xxx pré>

haskell se rapproche. P>

import Data.Maybe --18
r=foldl(\t c->t+y c-t`mod`y c*2)0 --34
y x=fromJust$lookup x$zip"IVXLCDM"[1,5,10,50,100,500,1000] --59


0 commentaires

3
votes

Python - 94 caractères

shot pas cher :) xxx


0 commentaires

7
votes

Solutions les plus courtes de CodeGolf.com

Il y avait un " romaine à décimale " Compétition sur Golf de code il y a quelque temps. (Eh bien, il fonctionne toujours parce qu'ils ne finissent jamais.) Un golfeur Perl par le nom de Eyepopslikeamosquito A> a décidé de gagner toutes les quatre langues (Perl, PHP, Python et Ruby), et il l'a fait. Il a écrit une série fascinante de quatre parties " Le parcours de golf a l'air génial, mon swing se sent bien, j'aime mon chances "( Partie II , Partie III , Partie IV ) décrivant ses approches sur perl moines . P>

Voici ses solutions: p>

ruby, 53 coups h2> xxx pré>

perl, 58 coups h2> xxx pré>

Il possède également une solution de 53 traits, mais cela ne fonctionne probablement pas actuellement: (il utilise la variable $ ^ t code> pendant quelques seconde période en 2011!) P>

t=p=0
for r in raw_input():n=10**(205558%ord(r)%7)%9995;t+=n-2*p%n;p=n
print t


2 commentaires

Oh merci, je ne pouvais pas le trouver avant, alors je ferais mieux d'accepter cela.


Oui, malheureusement parce que le concours CodeGolf.com ne se termine jamais, vous ne pouvez pas voir ce que font les autres. Il arrive que Eyepopslikeamosquito ait révélé ses solutions ailleurs ...