#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
int fun(char c)
{
switch(c)
{
case'I':return 1;
case'V':return 5;
case'X':return 10;
case'L':return 50;
case'C':return 100;
case'D':return 500;
case'M':return 1000;
}
}
int main()
{
char str[30];
while(cin>>str)
{
//getchar();
int sum=0;
for(int i=0;i<strlen(str);i++){
if(i==strlen(str)-1)sum+=fun(str[i]);
else
{
if(fun(str[i])>=fun(str[i+1]))
{sum=sum+fun(str[i]);}
else
{sum=sum-fun(str[i]);}
}
}
cout<<sum<<endl;
}
return 0;
}
#include<stdio.h>
#include<cstring>
using namespace std;
int fun(char c)
{
switch(c)
{
case'I':return 1;
case'V':return 5;
case'X':return 10;
case'L':return 50;
case'C':return 100;
case'D':return 500;
case'M':return 1000;
}
}
int main()
{
char str[30];
while(cin>>str)
{
//getchar();
int sum=0;
for(int i=0;i<strlen(str);i++){
if(i==strlen(str)-1)sum+=fun(str[i]);
else
{
if(fun(str[i])>=fun(str[i+1]))
{sum=sum+fun(str[i]);}
else
{sum=sum-fun(str[i]);}
}
}
cout<<sum<<endl;
}
return 0;
}
本文介绍了一个简单的C++程序,该程序能够将罗马数字转换为阿拉伯数字。通过使用switch语句来解析每个罗马数字字符,并根据罗马数字的组合规则进行加减运算,最终得出正确的阿拉伯数字值。
1340

被折叠的 条评论
为什么被折叠?



