tdd-katas/lib/roman_numerals.dart

22 lines
398 B
Dart

String integerToRoman(int number) {
const conversionRules = [
(40, 'XL'),
(10, 'X'),
(9, 'IX'),
(5, 'V'),
(4, 'IV'),
(1, 'I'),
];
final result = StringBuffer();
var remaining = number;
for (final (value, symbol) in conversionRules) {
while (remaining >= value) {
result.write(symbol);
remaining -= value;
}
}
return result.toString();
}