#24680: 我自己測都過,但line7不過QQ請各位大佬幫忙


pingw220@gmail.com (Peter Wang)

學校 : 國立科學工業園區實驗高級中學
編號 : 99007
來源 : [111.243.136.9]
最後登入時間 :
2022-06-02 22:42:20
a013. 羅馬數字 -- NPSC 模擬試題 | From: [103.125.235.22] | 發表日期 : 2021-03-14 11:42

#include <iostream>
#include <map>
#include <cmath>
using namespace std;
map <char,int> mp;
int main() {
string str1,str2;
while(cin>>str1>>str2){
if(str1=="#"){
return 0;
}
mp['I']=1;
mp['V']=5;
mp['X']=10;
mp['L']=50;
mp['C']=100;
mp['D']=500;
mp['M']=1000;
int len1=str1.length();
int len2=str2.length();
int num1=0,num2=0;
for(int i=0;i<len1;i++){
num1+=mp[str1[i]];
}
for(int i=0;i<len2;i++){
num2+=mp[str2[i]];
}
int ans=abs(num1-num2);
if(ans==0){
cout<<"ZERO"<<endl;
}
string an="MDCLXVI";
int co[7]={0};
for(int i=0;i<7;i++){
while(ans>=mp[an[i]]){
ans-=mp[an[i]];
co[i]++;
}
}
for(int j=0;j<co[0];j++){
cout<<an[0];
}
for(int i=2;i<7;i+=2){
if(co[i]==4 && co[i-1]==1){
cout<<an[i]<<an[i-2];
}
else if(co[i]==4){
cout<<an[i]<<an[i-1];
}
else{
//cout<<an[i-1];
//cout<<co[i-1]<<endl;
for(int j=0;j<co[i-1];j++){
cout<<an[i-1];
}
for(int j=0;j<co[i];j++){
cout<<an[i];
}
}
}
cout<<endl;
}
return 0;
}
 
ZeroJudge Forum