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;
}


转载于:https://www.cnblogs.com/sichenzhao/p/9320240.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值