首页 > 其他分享 >罗马数字转整数

罗马数字转整数

时间:2022-10-29 11:23:53浏览次数:45  
标签:Dictionary 40 keys value 罗马数字 整数 500

题目:罗马数字对应阿拉伯数字

字符 数值

I 1

V 5

X 10

L 50

C 100

D 500

M 1000

罗马数字的规则都是,大的在小的左边,如 12 XII 15 XV ;

特殊情况是,小的在大的左边,如 4,9,40,90......,如 4 IV,9 IX,40 XL

 

解题思路:

1.按照顺序,总是左边比右边大,n<n+1,那么可以相加;出现左边比右边小,则相减;

string s="IV";
Dictionary<Char,int> keys=new  Dictionary<Char,int>(){
    {'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',500},{'M',1000} 
};
int value=0;
for(i=0;i<s.Length;i++)
{
  if(i<s.Length-1&&keys[s[i+1]]>keys[s[i]])
  {
      value-=keys[s[i]]
  }
 else    
 {
     value+=keys[s[i]]
 }
}

return value;

关键点:循环,指针

标签:Dictionary,40,keys,value,罗马数字,整数,500
From: https://www.cnblogs.com/morehappy/p/16838318.html

相关文章