aboutsummaryrefslogtreecommitdiff
path: root/analyzer/utils/roman.c
diff options
context:
space:
mode:
Diffstat (limited to 'analyzer/utils/roman.c')
-rw-r--r--analyzer/utils/roman.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/analyzer/utils/roman.c b/analyzer/utils/roman.c
new file mode 100644
index 0000000..9ea2bbb
--- /dev/null
+++ b/analyzer/utils/roman.c
@@ -0,0 +1,16 @@
+#include "utils/roman.h"
+
+#include <stddef.h>
+#include <string.h>
+
+void to_roman(char *buffer, int number) {
+ buffer[0] = '\0';
+ int nums[ROMAN_CHAR_COUNT] = ROMAN_NUMS;
+ char *chars[ROMAN_CHAR_COUNT] = ROMAN_CHARS;
+ for (size_t i = 0; i < ROMAN_CHAR_COUNT; i++) {
+ for (size_t j = 0; j < number / nums[i]; j++) {
+ strcat(buffer, chars[i]);
+ }
+ number %= nums[i];
+ }
+}