罗马数字采用七个罗马字母作数字,即I(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。记数的方法
1、相同的数字连写、所表示的数等于这些数字相加得到的数、如:III=3;
2、小的数字在大的数字的右边、所表示的数等于这些数字相加得到的数、如VIII=8、XII=12;
3、小的数字在大的数字的左边、所表示的数等于大数减小数得到的数、如IV=4、IX=9;
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
int print_roman_number(int number)
{
if(number>1000 && number < 0){return 0;}
else if(number == 1000)
{
printf("M\n");
return 0;
}
while(number)
{
if(number>=500)
{
if(number>=900)
{
printf("CM");
number=number-900;
}
else
{
printf("D");
number = number-500;
}
}
else if(number >= 100)
{
if(number>=400)
{
printf("CD");
number = number-400;
}
else
{
printf("C");
number = number-100;
}
}
else if(number >= 50)
{
if(number>90)
{
printf("XC");
number = number-90;
}
else
{
printf("L");
number = number-50;
}
}
else if(number >= 10)
{
if(number >= 40)
{
printf("XL");
number=number-40;
}
else
{
printf("X");
number = number-10;
}
}
else if(number >= 5)
{
if(number >= 9)
{
printf("IX");
number = number - 9;
}
else
{
printf("V");
number = number-5;
}
}
else if(number >= 1)
{
if(number >= 4)
{
printf("IV");
number = number-4;
}
else
{
printf("I");
number = number-1;
}
}
}
printf("\n");
return 0;
}
int main()
{
int i=1, number=1;
for (i = 1; i <= 1000; i++)
print_roman_number(i);
return 0;
}