数字转罗马字符串

来源:互联网 发布:编程小白书籍入门推荐 编辑:程序博客网 时间:2024/04/27 13:34
// 数字转罗马字符串// VC2008通过#include "stdafx.h"#include <stdio.h>// 数字转罗马字符串// 需要保证strData空间足够// 范围: 1~3999void NumberToString(int nValue, char* strData){const char* s1000[4] = {"", "M", "MM", "MMM"};const char* s100[10]  = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}; const char* s10[10]   = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};const char* s1[10]    = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};int d1000 = nValue/1000;int d100 = (nValue % 1000)/100;int d10 = (nValue % 100)/10;int d1 = nValue % 10;sprintf(strData, "%s%s%s%s", s1000[d1000], s100[d100], s10[d10],s1[d1]);}int _tmain(int argc, _TCHAR* argv[]){char strData[20] = {0};int nValue = 999;NumberToString(nValue, strData);printf("%s = %d\n", strData, nValue);return 0;}

原创粉丝点击