#24243: 求救:如何解決測資的問題⋯


yeh300256@gmail.com (葉育嘉)

學校 : 不指定學校
編號 : 143708
來源 : [118.171.188.96]
最後登入時間 :
2021-01-30 22:46:47
a013. 羅馬數字 -- NPSC 模擬試題 | From: [1.175.130.17] | 發表日期 : 2021-01-30 01:36

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<string.h>

int main(void){

int n=0,m=0;

char a[7]={'M','D','C','L','X','V','I'};

int b[7]={1000,500,100,50,10,5,1};

int z[6]={900,400,90,40,9,4};

char c[10],d[10];

while(scanf("%s%s",c,d)!=EOF){

if(c[0]=='#')

break;

for(int i=0;i<strlen(c);i++){

for(int j=0;j<=7;j++){

if(c[i]==a[j]){

m+=b[j];

break;

}

}

}

for(int i=0;i<strlen(d);i++){

for(int j=0;j<=7;j++){

if(d[i]==a[j]){

n+=b[j];

break;

}

}

}

int s=m-n;

if(s==0)

printf("ZERO");

if(s<0)

s=-s;

m=0;

n=0;

while(s>=1000){

s-=1000;

printf("M");

}

while(s>=900){

s-=900;

printf("CM");

}

while(s>=500){

s-=500;

printf("D");

}

while(s>=400){

s-=400;

printf("CD");

}

while(s>=100){

s-=100;

printf("C");

}

while(s>=90){

s-=90;

printf("XC");

}

while(s>=50){

s-=50;

printf("L");

}

while(s>=40){

s-=40;

printf("XL");

}

while(s>=10){

s-=10;

printf("X");

}

while(s>=9){

s-=9;

printf("IX");

}

while(s>=5){

s-=5;

printf("V");

}

while(s>=4){

s-=4;

printf("IV");

}

while(s>=1){

s-=1;

printf("I");

}

printf("\n");

}

return 0;

}

 

 
ZeroJudge Forum