From eb2426e4deb4b67bd4b61f173bb97519fdd65f56 Mon Sep 17 00:00:00 2001 From: unlockable Date: Fri, 22 Aug 2025 00:10:06 +0800 Subject: [PATCH] add prob 7 --- 7-13.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 7-13.c diff --git a/7-13.c b/7-13.c new file mode 100644 index 0000000..51942cd --- /dev/null +++ b/7-13.c @@ -0,0 +1,63 @@ +#include +#include + +int romanToInt(char* s) { + int ans = 0; + int len = strlen(s); + for (int i = 0; i < len; ++i) { + char cur = s[i]; + char peeknext; + if (i == len - 1) { + peeknext = ' '; + } else { + peeknext = s[i + 1]; + } + switch (cur) + { + case 'I': + if (peeknext == 'V' || peeknext == 'X') { + ans -= 1; + } else { + ans += 1; + } + break; + + case 'V': + ans += 5; + break; + case 'X': + if (peeknext == 'L' || peeknext == 'C') { + ans -= 10; + } else { + ans += 10; + } + break; + case 'L': + ans += 50; + break; + case 'C': + if (peeknext == 'D' || peeknext == 'M') { + ans -= 100; + } else { + ans += 100; + } + break; + case 'D': + ans += 500; + break; + case 'M': + ans += 1000; + break; + + default: + break; + } + } + return ans; +} + +int main() { + char s[] = "LVIII"; + printf("%d\n", romanToInt(s)); + return 0; +} \ No newline at end of file