[leetcode]Integer to Roman

Integer to Roman

题意:输入一个int,转化成roman数字输出,int取值范围是1-3999

解法:罗马数字的每一位都有唯一表示,直接枚举每一位,将其对应符号输出就可以了

public class Solution140 {

   public String intToRoman(int num) {

             String[] number=new String[4000];

             number[1]="I";

             number[2]="II";

             number[3]="III";

             number[4]="IV";

             number[5]="V";

             number[6]="VI";

             number[7]="VII";

             number[8]="VIII";

             number[9]="IX";

             number[10]="X";

             number[20]="XX";

             number[30]="XXX";

             number[40]="XL";

             number[50]="L";

             number[60]="LX";

             number[70]="LXX";

             number[80]="LXXX";

             number[90]="XC";

             number[100]="C";

             number[200]="CC";

             number[300]="CCC";

             number[400]="CD";

             number[500]="D";

             number[600]="DC";

             number[700]="DCC";

             number[800]="DCCC";

             number[900]="CM";

             number[1000]="M";

             number[2000]="MM";

             number[3000]="MMM";

             int i=num;

             String tempS="";

             int temp=i;

             int thousand=temp/1000;

             temp=temp-thousand*1000;

             int hundred=temp/100;

             temp=temp-hundred*100;

             int ten=temp/10;

             temp=temp-ten*10;

             int unit=temp;

             if (thousand>0){

                       tempS=tempS+number[thousand*1000];

             }

             if (hundred>0){

                       tempS=tempS+number[hundred*100];

             }

             if (ten>0){

                       tempS=tempS+number[ten*10];

             }

             if (unit>0){

                       tempS=tempS+number[unit];

             }       

       return tempS;

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值