Roman Numerals
2 methods of converting a number to Roman numerals
by subskybox
JavaScript
function rome(N,s,b,a,o,t){
t=N/1e3|0;N%=1e3;
for(s=b='',a=5;N;b++,a^=7)
for(o=N%a,N=N/a^0;o--;)
s='IVXLCDM'.charAt(o>2?b+N-(N&=~1)+(o=1):b)+s;
return Array(t+1).join('M')+s;
}
function romanize(num) {
var lookup = {M:1000,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1},
roman = '',
i;
for ( i in lookup ) {
while ( num >= lookup[i] ) {
roman += i;
num -= lookup[i];
}
}
return roman;
}
var year = 2012;
document.write(rome(year));
document.write("<br/>");
document.write(romanize(year));