Back to Problem list
Back to Problem list
Problem 24: Write a program to covert a decimal number to roman number
#include<stdio.h>
#define maxn 10
int value[] = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
char Roman[][3] = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
int Recur(int n) {
int i;
if(n == 0)
return 0;
for(i = 12; i>=0; i--) {
if(value[i] >= n) {
break;
}
}
if(i < 0) i++;
if(value[i] > n) i++;
printf("%s",Roman[i]);
Recur(n-value[i]);
}
int main() {
int n;
while(scanf("%d",&n) == 1) {
Recur(n);
printf("\n");
}
return 0;
}
Back to Problem list