罗马数字转换成数字java_C趣味编程百例(31)将阿拉伯数字转换为罗马数字
95.將阿拉伯?dāng)?shù)字轉(zhuǎn)換為羅馬數(shù)字
將大于0小于1000的阿拉伯?dāng)?shù)字轉(zhuǎn)換為羅馬數(shù)字。阿拉伯?dāng)?shù)字與羅馬數(shù)字的對(duì)應(yīng)關(guān)系如下:
*問(wèn)題分析與算法設(shè)計(jì)
題目中給出了阿拉伯?dāng)?shù)字與羅馬數(shù)字的對(duì)應(yīng)關(guān)系,題中的數(shù)字轉(zhuǎn)換實(shí)際上就是查表翻譯。即將整數(shù)的百、十、個(gè)位依次從整數(shù)中分解出來(lái),查找表中相應(yīng)的行后輸出對(duì)應(yīng)的字符。
*程序與程序設(shè)計(jì)
#includevoid?main()
{
static?char?*a[][10]={"","I","II","III","IV","V","VI","VII","VIII","IX"
"","X","XX","XXX","XL","L","LX","LXX","LXXX","XCC",
"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"
};???????????/*建立對(duì)照表*/
int?n,t,i,m;
printf("Please?enter?number:");
scanf("%d",&n);???????????/*輸入整數(shù)*/
printf("%d=",n);
for(m=0,i=1000;m<3;m++,i/=10)
{
t=(n%i)/(i/10);????????/*從高位向低位依次取各位的數(shù)字*/
printf("%s",a[2-m][t]);??????/*通過(guò)對(duì)照表翻譯輸出*/
}
printf("\n");
}
*運(yùn)行結(jié)果
1.?Please?enter?number:863
863=DCCCLXIII
2.?Please?enter?number:?256
256=CCLVI
3.?Please?enter?number:355
355=CCCLV
4.?Please?enter?number:522
522=DXXII
5.?Please?enter?number:15
15=XV
*思考題
輸入正整數(shù)N,產(chǎn)生對(duì)應(yīng)的英文數(shù)字符串并輸出,例如:
1???????ONE??????2???TWO??????3???THREE
10??????TEN??????11??ELEVEN
135?????ONE?HUNDRED?THIRTY?FIVE
總結(jié)
以上是生活随笔為你收集整理的罗马数字转换成数字java_C趣味编程百例(31)将阿拉伯数字转换为罗马数字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 联想拯救者R7000P 2021游戏本评
- 下一篇: java密码学原型算法_java密码学原