Leetcode c语言-Integer to Roman
Title:
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
这道题目就是将数字转换成罗马数字。比较简单。
Solutions:
char* intToRoman(int num) {
char* string = (char*)malloc(sizeof(char)*100);
int index=0;
char* c[4][10]={
{"","I","II","III","IV","V","VI","VII","VIII","IX"},
{"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"},
{"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},
{"","M","MM","MMM"}
};
/*这里要注意由于c[][]是字符串二维数组,因此每一个元素都是一个字符串,因此都包含结束符'\0'
因此不能使用如下代码:
string[index++] = c[3][num/1000];
string[index++] = c[2][num/100%10];
string[index++] = c[1][num/10%10];
string[index++] = c[0][num%10];
string[index] = 0;
会导致第一个string的元素就包含了结束符0,这样最后输出只能输出第一个元素。*/
strcat(string,c[3][num/1000]);
strcat(string,c[2][num/100%10]);
strcat(string,c[1][num/10%10]);
strcat(string,c[0][num%10]);
return string;
}
posted on 2017-09-11 21:53 sichenzhao 阅读(124) 评论(0) 编辑 收藏 举报