OJ刷題---羅馬數字轉十進位制
阿新 • • 發佈:2019-01-10
題目要求:
輸入程式碼:
#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; }
執行結果: