以下是我的寫法:
#include<stdio.h>
#include<string.h>
int pp(char []);
int main(){
char c1[15],c2[15];
register int k,k1,k2;
while(scanf("%s %s",c1,c2)){
k1=pp(c1);
k2=pp(c2);
k=k1-k2;
if(k<0)
k=0-k;
if(k==0)
printf("ZERO\n");
while(k>0){
if(k>=1000){
printf("M");
k-=1000;
}
else if(k>=900){
printf("CM");
k-=900;
}
else if(k>=500){
printf("D");
k-=500;
}
else if(k>=400){
printf("CD");
k-=400;
}
else if(k>=100){
printf("C");
k-=100;
}
else if(k>=90){
printf("XC");
k-=90;
}
else if(k>=50){
printf("L");
k-=50;
}
else if(k>=40){
printf("XL");
k-=40;
}
else if(k>=10){
printf("X");
k-=10;
}
else if(k>=9){
printf("IX");
k-=9;
}
else if(k>=5){
printf("V");
k-=5;
}
else if(k>=4){
printf("IV");
k-=4;
}
else if(k>=1){
printf("I");
k-=1;
}
}
printf("\n");
}
return 0;
}
int pp(char i[]){
int m=0,p,a=strlen(i);
for(p=0;p<a;p++){
switch(i[p]){
case'I':
m++;
break;
case'V':
m+=5;
break;
case'X':
m+=10;
break;
case'L':
m+=50;
break;
case'C':
m+=100;
break;
case'D':
m+=500;
break;
case'M':
m+=1000;
break;
}
}
return m;
}
結果逾時1s,想問有沒有大大能給個建議
以下是我的寫法:
#include
#include
int pp(char []);
int main(){
char c1[15],c2[15];
register int k,k1,k2;
while(scanf("%s %s",c1,c2)){
k1=pp(c1);
k2=pp(c2);
k=k1-k2;
if(k<0)
k=0-k;
if(k==0)
printf("ZERO\n");
while(k>0){
if(k>=1000){
printf("M");
k-=1000;
}
else if(k>=900){
printf("CM");
k-=900;
}
else if(k>=500){
printf("D");
k-=500;
}
else if(k>=400){
printf("CD");
k-=400;
}
else if(k>=100){
printf("C");
k-=100;
}
else if(k>=90){
printf("XC");
k-=90;
}
else if(k>=50){
printf("L");
k-=50;
}
else if(k>=40){
printf("XL");
k-=40;
}
else if(k>=10){
printf("X");
k-=10;
}
else if(k>=9){
printf("IX");
k-=9;
}
else if(k>=5){
printf("V");
k-=5;
}
else if(k>=4){
printf("IV");
k-=4;
}
else if(k>=1){
printf("I");
k-=1;
}
}
printf("\n");
}
return 0;
}
int pp(char i[]){
int m=0,p,a=strlen(i);
for(p=0;p<a;p++){
switch(i[p]){
case'I':
m++;
break;
case'V':
m+=5;
break;
case'X':
m+=10;
break;
case'L':
m+=50;
break;
case'C':
m+=100;
break;
case'D':
m+=500;
break;
case'M':
m+=1000;
break;
}
}
return m;
}
結果逾時1s,想問有沒有大大能給個建議
讀資料的地方換成
while(scanf("%s",c1)&&c1[]!='#')//最後一行是給一個 # 結束,拆開拿資料
{
scanf("%s,c2);//裡面加上
}
試試看