piątek, marca 30, 2012

Uspokajacz

Moje dzisiejsze "dziełko", które popełniłem dla uspokojenia nerwów skołatanych dźwiękiem odkurzacza i bólem zatoki ;-)
----- Start ------
def toRoman(i):
a = {"M":1000,"D":500,"C":100,"L":50,"X":10,"V":5,"I":1,"IX":9,"XL":40,"CD":400,"CM":900,"XC":90,"IV":4}
b = ["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]
idx = 0
s = ""
while i>0:
while (i-a[b[idx]])>=0:
s=s+b[idx]
i=i-int(a[b[idx]])
d=a[b[idx]]
if i==0:
break
idx=idx+1
s=s.replace("LXL","XC")
return s

print(toRoman(1978))
print(toRoman(2000))
print(toRoman(2012))
---- Stop -----
(ponieważ Google+ niszczy formatowanie, to tutaj http://www.przemelek.pl/file/roman.py wersja oryginalna :-))

I wypisuje MCMLXXVIII, MM oraz MMXII co oznacza, że chyba działa ;-)





Podobne postybeta
Malutki serwerek HTTP - dziełko, albo potworek ;-)
Coca-Colowy eksperyment cd ;-)
Go dla Java'owca ;-) odcinek 2 "kontenery dwa ;-)"
Pytanie SVNowe :-)
Java i liczby pierwsze, odsłona druga

3 komentarze:

  1. Błąd jest dla XC powinno być 90

    OdpowiedzUsuń
  2. Błąd jest dla XC powinno być 90

    OdpowiedzUsuń
  3. @b - masz całkowitą rację :-)
    Poprawiłem.
    Zamiast 900 powinno być 90.

    OdpowiedzUsuń