const int value[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
const char* symbol[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
char * intToRoman(int num){
char* roman=(char*)malloc(sizeof(char)*16);
roman[0]='\0';
for(int i=0;i<13;i++){
while(num>=value[i]){
num-=value[i];
strcpy(roman+strlen(roman),symbol[i]);
}
if(num==0){
break;
}
}
return roman;
}
?学会了吗?
关于罗马数字的编码规则,value表中的值与罗马符号一一对应。当I,X,C在左侧时表示减去对应的值。I=1,X=10,C=100.
版权声明:本文为weixin_44464829原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。