l_int value=0;
char * cur=input;
while(*cur){ //对cur指针是否指到了字符串尾部的判断
if(*(cur+1)){
if(get_value(*cur)>=get_value(*(cur+1))){//当前的罗马字符值大于等于其后罗马字符值时直接计算
value+=get_value(*cur);
cur++;
}
else{ //当前罗马字符小于其后字符时的情况,后值减前值
value+=get_value(*(cur+1))-get_value(*cur);
cur+=2;
}
}
else{ //没有后续罗马字符时直接跳出
value+=get_value(*cur);
break;
}
}
cout<<"Roman numeral's values is "<<value<<endl;
return value;
}
void main()
{ /* 测试用例:输入MMMMCMXCIX 返回4999
时间仓促没有对输入的罗马字符是否正确做完美的判断,见谅
*/
converse();
}