95.將阿拉伯數(shù)字轉(zhuǎn)換為羅馬數(shù)字
將大于0小于1000的阿拉伯數(shù)字轉(zhuǎn)換為羅馬數(shù)字。阿拉伯數(shù)字與羅馬數(shù)字的對應關(guān)系如下:
*問題分析與算法設計
題目中給出了阿拉伯數(shù)字與羅馬數(shù)字的對應關(guān)系,題中的數(shù)字轉(zhuǎn)換實際上就是查表翻譯。即將整數(shù)的百、十、個位依次從整數(shù)中分解出來,查找表中相應的行后輸出對應的字符。
*程序與程序設計
#include
void 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"
}; /*建立對照表*/
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]); /*通過對照表翻譯輸出*/
}
printf("\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)生對應的英文數(shù)字符串并輸出,例如:
1 ONE 2 TWO 3 THREE
10 TEN 11 ELEVEN
135 ONE HUNDRED THIRTY FIVE
將大于0小于1000的阿拉伯數(shù)字轉(zhuǎn)換為羅馬數(shù)字。阿拉伯數(shù)字與羅馬數(shù)字的對應關(guān)系如下:
*問題分析與算法設計
題目中給出了阿拉伯數(shù)字與羅馬數(shù)字的對應關(guān)系,題中的數(shù)字轉(zhuǎn)換實際上就是查表翻譯。即將整數(shù)的百、十、個位依次從整數(shù)中分解出來,查找表中相應的行后輸出對應的字符。
*程序與程序設計
#include
void 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"
}; /*建立對照表*/
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]); /*通過對照表翻譯輸出*/
}
printf("\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)生對應的英文數(shù)字符串并輸出,例如:
1 ONE 2 TWO 3 THREE
10 TEN 11 ELEVEN
135 ONE HUNDRED THIRTY FIVE