bit Roman numerals

Roman numerals

时间限制: 1秒  内存限制: 64M

Problem Description

Now let’s think about roman numerals!

-

The Roman numerals for 1 through 10 are I, II, III, IV, V, VI, VII, VIII, IX, and X.

-

The Roman numerals for 20, 30, 40, and 50 are XX, XXX, XL, and L.

-

The Roman numeral for any other two-digit number less than 50 can be constructed by concatenating the numeral for its tens and the numeral for its ones. For example, 47 is 40 + 7 = "XL" + "VII" = "XLVII".

Now given a Roman numeral n (n <= 50), please output the value of the number.

Input

The first line of the input is an integer t, which is the numbers of the test cases.

For each test case, there is one line which is a roman numeral whose value is less or equal to 50.

Output

For each test case you should output the value of the roman numeral.

Sample Input

2

I

II

Sample Output

1

2



#include<stdio.h>
#include<string.h>
void conv(char *input,int *value){
	int length = strlen(input);
	int i;
	for(i = 0; i < length; ++i){
		if(input[i] == 'I'){
			if(input[i+1] == 'X'){
				*value += 9;
				++i;
			}else if(input[i+1] == 'V'){
				*value +=4;
				++i;
			}else{
				*value += 1;	
			}
		}else if(input[i] == 'V'){
			*value += 5;
		}else if(input[i] == 'X'){
			if(input[i+1] == 'L'){
				*value += 40;
				++i;
			}else{
				*value +=10;
			}
			
		}else{
			*value += 50;
		}	
	}
	return;
}

int main(){
	char input[8];
	int test_case;
	int value;

	scanf("%d",&test_case);
	while(test_case--){

		scanf("%s",input);
		value = 0;
		conv(input,&value);
		printf("%d\n",value);
	}		
	return 0;
}


你可能感兴趣的:(bit Roman numerals)