现在要求你编写程序把实现阿拉伯数字到罗马数字的转换.
输入文件包含多组测试数据,每组测试数据一行,给出一个阿拉伯数字表示下的正整数,该数不超过3000.
对于每一组测试数据,对应输出一行,为阿拉伯数字表示.
512
DXII
其实只要掌握罗马数字的规律就很简单了。。简单模拟
#include <stdio.h> #include <string.h> int main() { int n,i,t; while(~scanf("%d",&n)) { if(n>=1000) { t=n/1000; n=n-t*1000; while(t--) printf("M"); } if(n>=100) { t=n/100; n=n-t*100; if(t<=3) while(t--) printf("C"); else if(t==4) printf("CD"); else if(t<9) { printf("D"); t-=5; while(t--) printf("C"); } else if(t==9) printf("CM"); } if(n>=10) { t=n/10; n=n-t*10; if(t<=3) while(t--) printf("X"); else if(t==4) printf("XL"); else if(t<9) { printf("L"); t-=5; while(t--) printf("X"); } else if(t==9) printf("XC"); } if(n<10) { if(n<=3) while(n--) printf("I"); else if(n==4) printf("IV"); else if(n<9) { printf("V"); n-=5; while(n--) printf("I"); } else if(n==9) printf("IX"); } printf("\n"); } return 0; }