首页 > 编程知识 正文

leetcode反转链表,word中的罗马字体是哪一个

时间:2023-05-04 00:47:18 阅读:51135 作者:1551

问:

Given an integer,convert it to a roman numeral。

inputisguaranteedtobewithintherangefrom1to 3999。

答:

我不知道什么是roman。 我查了一下,一共是罗马字。 这个主题的意思也很简单。 也就是说,输入1到1~3999之间的数字,但请将此阿拉伯数字转换为罗马数字。

首先,我们需要知道罗马数字是怎么表示的。 罗马数字表示为:

罗马数字共有七个: I(1)、v )、x )、l (50 )、c (100 )、d (500 )、M(1000 )。 而且罗马数字有以下规则。 重复一个罗马数字几次,就表示是那个数量的几倍。 右加左减:在大罗马数字的右边填写小罗马数字,表示大数字和小数字。 在大数字的左边填写小罗马数字,表示大数字会减少数字。 但是,左减少不能超越等级。 例如,99不能用IC表示。 用XCIX表示。 加线(千)在罗马数字上画横线,或在右下角写m,意味着把这个数字乘以1000,就是原来数量的1000倍。 同样,上面有两条横线的话,是原来数量的1000000倍。 上面都来自复印件。 详细调查一下这个主题吧。 输入的阿拉伯数字a=xI yV zX而已。 出现x、y、z等值后,根据规则进行匹配。 我们解不出这个方程,但确实他和阿拉伯数字很像。 首先末尾一定是1~9的中间。 加起来会被加上第10位、第100位、第1000位的转换。 需要以下表格。 1~9(9个) 10~90(9个) 9个;100~900(9个) 9个;1000~3000(3个) 3个) )。 我们为什么选择比较呢? 因为那很快。 但是仔细想想,有直接生成的公式吗? 1~3均为1(10、100、1000 )重叠4~8均为5 ) 50、500 )加上1 ) 10、100 ) 9均为10 ) 100、1000 )减去1 ) 10、100 ) 也可以用这个规律来运算需要转换的数值。 所以我们只要从末尾遍历这个int就可以了。 具体的遍历方法如下所示,是查看模仿我以前的jdk实现的源代码并打开链接的具体代码:

publicclassintegertoroman { publicstaticvoidmain [ ] args } { inta=999; 系统. out.println (method (a ) ); }私有统计方法(inti )//todo auto-generatedmethodstubintr=0; int q=1; int times=0; 字符串Roman=' '; wile (真) {times; q=(I*52429 ) 19; //末尾1位,2(16 )3)=524288 52429/524288约为0.1r=I-() (q3 ) (q 1 ) ); //r=i-q*10,切出最后一位i=q; sitch(times ) {case 1://位Roman=convertRoman(r,' I ',' v ',' x ' ); 布雷克; case 2://位Roman转换Roman、' x '、' l '、' c ' ) Roman; 布雷克; case 3://百位Roman转换Roman、' c '、' d '、' m ' ) Roman; 布雷克; case 4://千位Roman转换Roman、' m '、' null '、' null ' ) Roman; 布雷克; (if ) q==0) break; }返回只读存储器; }/** *一位罗马数字转换* @param r需要转换罗马数字* @param one一位表示1的罗马字* @param five一位表示5的罗马字* @param ten一位表示10的罗马字* @ publicstaticstringconvertroman (intr,String one,String five,String ten ) {String roman=' '; if(r==0)返回' ); ELSEif(0RR=3) ) {//oneString s=' '; for(intk=0; kr; k () {s=one; }roman=roman s; }elseif(3RR=8) ({//five /-oneString s=' '; if(r==4) {s=one five; (else ) for ) intk=5; kr; k () {s=one; (}s=five s; }roman=roman s; }elseif(r==9) ({//ten-oneroman=one ten; }返回只读存储器; (}性能~ (完美解决

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。