首页 > 代码库 > OJ刷题---罗马数字转十进制
OJ刷题---罗马数字转十进制
题目要求:
输入代码:
#include<iostream> using namespace std; int main() { int i,j,n,k; int num[7]= {1, 5,10,50,100,500,1000}; //罗马数字转换模板 char str[7]= {'I','V','X','L','C','D','M'}; int a[7];//定义一个转换成十进制的保存数组 char pL[7];//要输入的罗马数字 cin>>n; for(i=0; i<n; i++) { int sum=0; for(j=0; j<7; j++) { a[j]=-1; } cin>>pL; //输入一个罗马数字 for(j=0; pL[j]!='\0'; j++)//将罗马数字转化为详细数值 { for(k=0; k<7; k++) { if(pL[j]==str[k]) { a[j]=num[k]; break; } } } for(j=0; j<7; j++)//求终于结果 { if(a[j]==-1) break; if(a[j]<a[j+1]) { sum+=a[j+1]-a[j]; j++; continue; } else sum+=a[j]; } cout<<sum<<endl; } return 0; }
执行结果:
OJ刷题---罗马数字转十进制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。