rome2arabic
parent
b541e00bad
commit
4ae6c94abc
@ -0,0 +1,38 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#define LEN 7
|
||||
|
||||
const char rome[] = {'I', 'V', 'X', 'L', 'C', 'D', 'M'};
|
||||
const int arabic[] = {1, 5, 10, 50, 100, 500, 1000};
|
||||
|
||||
int find_eq(char c);
|
||||
|
||||
int main() {
|
||||
int cur, next;
|
||||
int res = 0;
|
||||
int i;
|
||||
char s[4000];
|
||||
|
||||
scanf("%s", s);
|
||||
|
||||
for (i = 0; i < (int)strlen(s) - 1; ++i) {
|
||||
cur = find_eq(s[i]);
|
||||
next = find_eq(s[i+1]);
|
||||
if (cur < next) {
|
||||
res -= cur;
|
||||
}
|
||||
else
|
||||
res += cur;
|
||||
}
|
||||
|
||||
res += find_eq(s[i]);
|
||||
|
||||
printf("%d", res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int find_eq(char c) {
|
||||
int i;
|
||||
for (i = 0; (c != rome[i]) && (i < LEN); ++i);
|
||||
return arabic[i];
|
||||
}
|
Reference in New Issue