网站浮动窗口怎么设置,网站内容建设规划,昆明优化公司,上海建网站哪家好学会将力扣题目用自己自带的编译软件编译---纯自己想的本题解法
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如#xff0c; 罗马数字 2 写做 II #xff0c;即为两… 学会将力扣题目用自己自带的编译软件编译---纯自己想的本题解法
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如 罗马数字 2 写做 II 即为两个并列的 1 。12 写做 XII 即为 X II 。 27 写做 XXVII, 即为 XX V II 。
通常情况下罗马数字中小的数字在大的数字的右边。但也存在特例例如 4 不写做 IIII而是 IV。数字 1 在数字 5 的左边所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况
I 可以放在 V (5) 和 X (10) 的左边来表示 4 和 9。X 可以放在 L (50) 和 C (100) 的左边来表示 40 和 90。 C 可以放在 D (500) 和 M (1000) 的左边来表示 400 和 900。
给定一个罗马数字将其转换成整数。
方法一模拟
思路
通常情况下罗马数字中小的数字在大的数字的右边。若输入的字符串满足该情况那么可以将每个字符视作一个单独的值累加每个字符对应的数值即可。 时间复杂度O(n)O(n)O(n)其中 nnn 是字符串 sss 的长度。 空间复杂度O(1)O(1)O(1
#includestdio.h
#includestring.h
#includestdlib.hint romanToInt(char* s) {int len strlen(s);int sum0;for(int i0;ilen;i){if(s[i]I s[i1]V){sum 4;i;}else if(s[i]I s[i1]X){sum 9;i;}elseif(s[i]X s[i1]L){sum 40;i;}elseif(s[i]X s[i1]C){sum 90;i;}elseif(s[i]C s[i1]D){sum 400;i;}elseif(s[i]C s[i1]M){sum 900;i;}else{switch(s[i]){case I:sum 1; break;case V:sum 5; break;case X:sum 10; break;case L:sum 50; break;case C:sum 100; break;case D:sum 500; break;case M:sum 1000; break;}}}return sum;
}int main(){char a[]MCMXCIV;printf(%d,romanToInt(a));return 0;
} 学会将力扣题目用自己自带的编译软件编译
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如 罗马数字 2 写做 II 即为两个并列的 1 。12 写做 XII 即为 X II 。 27 写做 XXVII, 即为 XX V II 。
通常情况下罗马数字中小的数字在大的数字的右边。但也存在特例例如 4 不写做 IIII而是 IV。数字 1 在数字 5 的左边所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况
I 可以放在 V (5) 和 X (10) 的左边来表示 4 和 9。X 可以放在 L (50) 和 C (100) 的左边来表示 40 和 90。 C 可以放在 D (500) 和 M (1000) 的左边来表示 400 和 900。
给定一个罗马数字将其转换成整数。
方法一模拟
思路
通常情况下罗马数字中小的数字在大的数字的右边。若输入的字符串满足该情况那么可以将每个字符视作一个单独的值累加每个字符对应的数值即可。 时间复杂度O(n)O(n)O(n)其中 nnn 是字符串 sss 的长度。 空间复杂度O(1)O(1)O(1
#includestdio.h
#includestring.h
#includestdlib.hint romanToInt(char* s) {int len strlen(s);int sum0;for(int i0;ilen;i){if(s[i]I s[i1]V){sum 4;i;}else if(s[i]I s[i1]X){sum 9;i;}elseif(s[i]X s[i1]L){sum 40;i;}elseif(s[i]X s[i1]C){sum 90;i;}elseif(s[i]C s[i1]D){sum 400;i;}elseif(s[i]C s[i1]M){sum 900;i;}else{switch(s[i]){case I:sum 1; break;case V:sum 5; break;case X:sum 10; break;case L:sum 50; break;case C:sum 100; break;case D:sum 500; break;case M:sum 1000; break;}}}return sum;
}int main(){char a[]MCMXCIV;printf(%d,romanToInt(a));return 0;
}
#includestdio.h #includestring.h #includestdlib.h int romanToInt(char* s) { int len strlen(s); int sum0; for(int i0;ilen;i){ if(s[i]I s[i1]V){ sum 4; i; }else if(s[i]I s[i1]X){ sum 9; i; }else if(s[i]X s[i1]L){ sum 40; i; }else if(s[i]X s[i1]C){ sum 90; i; }else if(s[i]C s[i1]D){ sum 400; i; }else if(s[i]C s[i1]M){ sum 900; i; }else{ switch(s[i]){ case I:sum 1; break; case V:sum 5; break; case X:sum 10; break; case L:sum 50; break; case C:sum 100; break; case D:sum 500; break; case M:sum 1000; break; } } } return sum; } int main(){ char a[]MCMXCIV; printf(%d,romanToInt(a)); return 0; }