题目描述:
代码为:
int romanToInt(char * s){
int sum = 0;
for(int i=0;s[i]!='\0';i++){
if(s[i] == 'I'){
if(s[i+1] == 'V' )
{
sum +=4;
i++;
}
else if(s[i+1] == 'X')
{
sum +=9;
i++;
}
else
sum +=1;
}
else if(s[i] == 'X'){
if(s[i+1] == 'L' )
{
sum +=40;
i++;
}
else if(s[i+1] == 'C')
{
sum +=90;
i++;
}
else
sum +=10;
}
else if(s[i] == 'C'){
if(s[i+1] == 'D' )
{
sum +=400;
i++;
}
else if(s[i+1] == 'M')
{
sum +=900;
i++;
}
else
sum +=100;
}
else{
if(s[i] == 'V')
sum +=5;
else if(s[i] == 'L')
sum +=50;
else if(s[i] == 'D')
sum +=500;
else if(s[i] == 'M')
sum +=1000;
}
}
return sum;
}
思路:读取输入的字符之后,从左到右来对字符进行判断。题目较为简单。
总结: 因为本人没有理解题目的意思,就学习大佬的思路,得到了上面的代码,在思考答案的过程中,我发现在函数中s[]数组不用声明就可以使用,然后自己就在csdn上进行学习;
1.字符串的几种遍历方式
2.函数参数中的 值传递与址传递区别
链接:https://blog.csdn.net/qq_43342294/article/details/84724383
函数的使用很清晰。