commit deletes
This commit is contained in:
parent
776bba907c
commit
372c577f83
233 changed files with 0 additions and 6724 deletions
|
|
@ -1,20 +0,0 @@
|
|||
-module(roman).
|
||||
-export([to_roman/1]).
|
||||
|
||||
to_roman(0) -> [];
|
||||
to_roman(X) when X >= 1000 -> [$M | to_roman(X - 1000)];
|
||||
to_roman(X) when X >= 100 ->
|
||||
digit(X div 100, $C, $D, $M) ++ to_roman(X rem 100);
|
||||
to_roman(X) when X >= 10 ->
|
||||
digit(X div 10, $X, $L, $C) ++ to_roman(X rem 10);
|
||||
to_roman(X) when X >= 1 -> digit(X, $I, $V, $X).
|
||||
|
||||
digit(1, X, _, _) -> [X];
|
||||
digit(2, X, _, _) -> [X, X];
|
||||
digit(3, X, _, _) -> [X, X, X];
|
||||
digit(4, X, Y, _) -> [X, Y];
|
||||
digit(5, _, Y, _) -> [Y];
|
||||
digit(6, X, Y, _) -> [Y, X];
|
||||
digit(7, X, Y, _) -> [Y, X, X];
|
||||
digit(8, X, Y, _) -> [Y, X, X, X];
|
||||
digit(9, X, _, Z) -> [X, Z].
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
public class RN {
|
||||
|
||||
enum Numeral {
|
||||
I(1), IV(4), V(5), IX(9), X(10), XL(40), L(50), XC(90), C(100), CD(400), D(500), CM(900), M(1000);
|
||||
int weight;
|
||||
|
||||
Numeral(int weight) {
|
||||
this.weight = weight;
|
||||
}
|
||||
};
|
||||
|
||||
public static String roman(long n) {
|
||||
|
||||
if( n <= 0) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
StringBuilder buf = new StringBuilder();
|
||||
|
||||
final Numeral[] values = Numeral.values();
|
||||
for (int i = values.length - 1; i >= 0; i--) {
|
||||
while (n >= values[i].weight) {
|
||||
buf.append(values[i]);
|
||||
n -= values[i].weight;
|
||||
}
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
public static void test(long n) {
|
||||
System.out.println(n + " = " + roman(n));
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
test(1999);
|
||||
test(25);
|
||||
test(944);
|
||||
test(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
#lang racket
|
||||
(define (encode/roman number)
|
||||
(cond ((>= number 1000) (string-append "M" (encode/roman (- number 1000))))
|
||||
((>= number 900) (string-append "CM" (encode/roman (- number 900))))
|
||||
((>= number 500) (string-append "D" (encode/roman (- number 500))))
|
||||
((>= number 400) (string-append "CD" (encode/roman (- number 400))))
|
||||
((>= number 100) (string-append "C" (encode/roman (- number 100))))
|
||||
((>= number 90) (string-append "XC" (encode/roman (- number 90))))
|
||||
((>= number 50) (string-append "L" (encode/roman (- number 50))))
|
||||
((>= number 40) (string-append "XL" (encode/roman (- number 40))))
|
||||
((>= number 10) (string-append "X" (encode/roman (- number 10))))
|
||||
((>= number 5) (string-append "V" (encode/roman (- number 5))))
|
||||
((>= number 4) (string-append "IV" (encode/roman (- number 4))))
|
||||
((>= number 1) (string-append "I" (encode/roman (- number 1))))
|
||||
(else "")))
|
||||
Loading…
Add table
Add a link
Reference in a new issue