题目要求:
输入代码:
#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; }
执行结果:
时间: 2024-11-05 22:38:46