您的答案為: MMDCCXVII
正確答案為: MCMXCVII
------以下為我的程式碼------
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
char IN[100][2][100];
int Num[100][2];
int D[100];
int i=0,k,t;
bool TF=false;
int main()
{
while(1) {
scanf("%s",IN[i][0]);
if(IN[i][0][0]=='#') {
break;
}
scanf("%s",IN[i][1]);
i++;
}
for(int j=0; j<i; j++) {
k=0;
while(IN[j][TF][k]=='M'){
Num[j][TF] +=1000;
k++;
}
if(IN[j][TF][k] == 'D'){
Num[j][TF] +=500;
k++;
}
while(IN[j][TF][k] == 'C'){
Num[j][TF] +=100;
k++;
if(IN[j][TF][k] == 'D'){
Num[j][TF] +=300;
k++;
break;
}
if(IN[j][TF][k] == 'M'){
Num[j][TF] +=800;
k++;
break;
}
}
if(IN[j][TF][k] == 'L'){
Num[j][TF] +=50;
k++;
}
while(IN[j][TF][k] == 'X'){
Num[j][TF] +=10;
k++;
if(IN[j][TF][k] == 'L'){
Num[j][TF] +=300;
k++;
break;
}
if(IN[j][TF][k] == 'C'){
Num[j][TF] +=800;
k++;
break;
}
}
if(IN[j][TF][k] == 'V'){
Num[j][TF] +=5;
k++;
}
while(IN[j][TF][k] == 'I'){
Num[j][TF] +=1;
k++;
if(IN[j][TF][k] == 'V'){
Num[j][TF] +=3;
k++;
break;
}
if(IN[j][TF][k] == 'X'){
Num[j][TF] +=8;
k++;
break;
}
}
TF = !TF;
if(TF == true) j--;
}
/*
for(int j=0;j<i;j++){
printf("%d,%d\n",Num[j][0],Num[j][1]);
}
*/
for(int j=0; j<i; j++) {
D[j] = abs(Num[j][0]-Num[j][1]);
}
for(int j=0; j<i; j++) {
if(D[j] == 0) printf("ZERO");
if(D[j]>=1000) {
t = D[j]/1000;
D[j] = D[j]%1000;
for(int x=0; x<t; x++) printf("M");
}
if(D[j]>=100) {
t = D[j]/100;
D[j] = D[j]%100;
if(t<4) {
for(int x=0; x<t; x++) printf("C");
}
else if(t==4) printf("CD");
else if(t<9) {
printf("D");
for(int x=0; x<t-5; x++) printf("C");
}
else printf("CM");
}
if(D[j]>=10) {
t = D[j]/10;
D[j] = D[j]%10;
if(t<4) {
for(int x=0; x<t; x++) printf("X");
}
else if(t==4) printf("XL");
else if(t<9) {
printf("L");
for(int x=0; x<t-5; x++) printf("X");
}
else printf("XC");
}
if(D[j]<4) {
for(int x=0; x<D[j]; x++) printf("I");
}
else if(D[j]==4) printf("IV");
else if(D[j]<9) {
printf("V");
for(int x=0; x<D[j]-5; x++) printf("I");
}
else printf("IX");
printf("\n");
}
return 0;
}
您的答案為: MMDCCXVII
正確答案為: MCMXCVII
------以下為我的程式碼------
#include
#include
#include
#include
char IN[100][2][100];
int Num[100][2];
int D[100];
int i=0,k,t;
bool TF=false;
int main()
{
while(1) {
scanf("%s",IN[i][0]);
if(IN[i][0][0]=='#') {
break;
}
scanf("%s",IN[i][1]);
i++;
}
for(int j=0; j
k=0;
while(IN[j][TF][k]=='M'){
Num[j][TF] +=1000;
k++;
}
if(IN[j][TF][k] == 'D'){
Num[j][TF] +=500;
k++;
}
while(IN[j][TF][k] == 'C'){
Num[j][TF] +=100;
k++;
if(IN[j][TF][k] == 'D'){
Num[j][TF] +=300;
k++;
break;
}
if(IN[j][TF][k] == 'M'){
Num[j][TF] +=800;
k++;
break;
}
}
if(IN[j][TF][k] == 'L'){
Num[j][TF] +=50;
k++;
}
while(IN[j][TF][k] == 'X'){
Num[j][TF] +=10;
k++;
if(IN[j][TF][k] == 'L'){
Num[j][TF] +=300;
k++;
break;
}
if(IN[j][TF][k] == 'C'){
Num[j][TF] +=800;
k++;
break;
}
}
if(IN[j][TF][k] == 'V'){
Num[j][TF] +=5;
k++;
}
while(IN[j][TF][k] == 'I'){
Num[j][TF] +=1;
k++;
if(IN[j][TF][k] == 'V'){
Num[j][TF] +=3;
k++;
break;
}
if(IN[j][TF][k] == 'X'){
Num[j][TF] +=8;
k++;
break;
}
}
TF = !TF;
if(TF == true) j--;
}
/*
for(int j=0;j
printf("%d,%d\n",Num[j][0],Num[j][1]);
}
*/
for(int j=0; j
D[j] = abs(Num[j][0]-Num[j][1]);
}
for(int j=0; j
if(D[j] == 0) printf("ZERO");
if(D[j]>=1000) {
t = D[j]/1000;
D[j] = D[j]%1000;
for(int x=0; x
}
if(D[j]>=100) {
t = D[j]/100;
D[j] = D[j]%100;
if(t<4) {
for(int x=0; x
}
else if(t==4) printf("CD");
else if(t<9) {
printf("D");
for(int x=0; x
}
else printf("CM");
}
if(D[j]>=10) {
t = D[j]/10;
D[j] = D[j]%10;
if(t<4) {
for(int x=0; x
}
else if(t==4) printf("XL");
else if(t<9) {
printf("L");
for(int x=0; x
}
else printf("XC");
}
if(D[j]<4) {
for(int x=0; x
}
else if(D[j]==4) printf("IV");
else if(D[j]<9) {
printf("V");
for(int x=0; x
}
else printf("IX");
printf("\n");
}
return 0;
}
我怕被質疑貼程式碼,所以傳私人訊息給你了
您的答案為: MMDCCXVII
正確答案為: MCMXCVII
------以下為我的程式碼------
#include
#include
#include
#include
char IN[100][2][100];
int Num[100][2];
int D[100];
int i=0,k,t;
bool TF=false;
int main()
{
while(1) {
scanf("%s",IN[i][0]);
if(IN[i][0][0]=='#') {
break;
}
scanf("%s",IN[i][1]);
i++;
}
for(int j=0; j
k=0;
while(IN[j][TF][k]=='M'){
Num[j][TF] +=1000;
k++;
}
if(IN[j][TF][k] == 'D'){
Num[j][TF] +=500;
k++;
}
while(IN[j][TF][k] == 'C'){
Num[j][TF] +=100;
k++;
if(IN[j][TF][k] == 'D'){
Num[j][TF] +=300;
k++;
break;
}
if(IN[j][TF][k] == 'M'){
Num[j][TF] +=800;
k++;
break;
}
}
if(IN[j][TF][k] == 'L'){
Num[j][TF] +=50;
k++;
}
while(IN[j][TF][k] == 'X'){
Num[j][TF] +=10;
k++;
if(IN[j][TF][k] == 'L'){
Num[j][TF] +=300;
k++;
break;
}
if(IN[j][TF][k] == 'C'){
Num[j][TF] +=800;
k++;
break;
}
}
if(IN[j][TF][k] == 'V'){
Num[j][TF] +=5;
k++;
}
while(IN[j][TF][k] == 'I'){
Num[j][TF] +=1;
k++;
if(IN[j][TF][k] == 'V'){
Num[j][TF] +=3;
k++;
break;
}
if(IN[j][TF][k] == 'X'){
Num[j][TF] +=8;
k++;
break;
}
}
TF = !TF;
if(TF == true) j--;
}
/*
for(int j=0;j
printf("%d,%d\n",Num[j][0],Num[j][1]);
}
*/
for(int j=0; j
D[j] = abs(Num[j][0]-Num[j][1]);
}
for(int j=0; j
if(D[j] == 0) printf("ZERO");
if(D[j]>=1000) {
t = D[j]/1000;
D[j] = D[j]%1000;
for(int x=0; x
}
if(D[j]>=100) {
t = D[j]/100;
D[j] = D[j]%100;
if(t<4) {
for(int x=0; x
}
else if(t==4) printf("CD");
else if(t<9) {
printf("D");
for(int x=0; x
}
else printf("CM");
}
if(D[j]>=10) {
t = D[j]/10;
D[j] = D[j]%10;
if(t<4) {
for(int x=0; x
}
else if(t==4) printf("XL");
else if(t<9) {
printf("L");
for(int x=0; x
}
else printf("XC");
}
if(D[j]<4) {
for(int x=0; x
}
else if(D[j]==4) printf("IV");
else if(D[j]<9) {
printf("V");
for(int x=0; x
}
else printf("IX");
printf("\n");
}
return 0;
}
我怕被質疑貼程式碼,所以傳私人訊息給你了
感謝 沒想到是卡在最後這個細節