12. Integer to Roman
来源:互联网 发布:网络出版服务管理 编辑:程序博客网 时间:2024/05/16 10:38
题目:Integer to Roman
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
【罗马数字】
1~9: {"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
10~90: {"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
100~900: {"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
1000~3000: {"M", "MM", "MMM"}.
代码:
char* intToRoman(int num) { int i=0; //申明“”1,2,3,4,5,6,7,8,9 (10个) //“”,10,20,30,40,50,60,70,80,90 (10个) //“”,100,200,300,400,500,600,700,800,900(10个) //“”,1000,2000,3000(4个) //这些数字对应的罗马字符 char string[34][5]={ "","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" }; //3999的表示为“MMMCMXCIX” char* ret=(char *)malloc(sizeof(char)*10); //用char ret[10]=""是不行 for(i=0;i<10;i++) //初始化很重要 { ret[i]='\0'; } int digit=0; while(num!=0) { //分别得到个十百千位的数 int tmp=num%10; //保存ret中的值。 char* t=(char *)malloc(sizeof(char)*10); strcpy(t,ret); strcpy(ret,string[digit*10+tmp]); strcat(ret,t); digit++; num=num/10; } return ret;}
0 0
- 12.Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- 12. Integer to Roman
- java打印日历---Calendar类的综合运用
- MyEclipse安装SVN
- tx6总结
- python 网络下载文件
- g++编译警告原因分析..is used uninitialized in this function
- 12. Integer to Roman
- HDOJ-----4324Triangle LOVE---拓扑排序
- Android平台安全SELinux篇
- formular
- LeetCode之反转数组
- HDU - 2855 Fibonacci Check-up 斐波那契矩阵
- SQLite数据库表字段修改与删除
- 【hihocoder】hiho密码(水题)
- Python学习笔记-初级(二):模块与函数