国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

leetcode :Integer to Roman

2019-11-11 00:36:25
字體:
來源:轉載
供稿:網友

leetcode

做這道題首先查看了一下羅馬數字的表示方式,相比于阿拉伯數字真的麻煩!

題目中也是將輸入范圍限定到3999.

我第一想到的就是用switch語句。

switch(T x ){

case 1:

語句;break;

case 2:

....

default:

break;

}

代碼如下:

class Solution {public:    string intToRoman(int num) {        string ret;        int x1=num%10;        switch(x1){            case 1:            ret='I';            break;            case 2:            ret="II";            break;            case 3:            ret="III";            break;            case 4:            ret="IV";            break;            case 5:            ret='V';            break;            case 6:            ret="VI";            break;            case 7:            ret="VII";            break;            case 8:            ret="VIII";            break;            case 9:            ret="IX";            break;            default:            break;        }        if(num>=10){            int x2=(num/10)%10;            switch(x2){                case 1:                ret='X'+ret;                break;                case 2:                ret="XX"+ret;                break;                case 3:                ret="XXX"+ret;                break;                case 4:                ret="XL"+ret;                break;                case 5:                ret='L'+ret;                break;                case 6:                ret="LX"+ret;                break;                case 7:                ret="LXX"+ret;                break;                case 8:                ret="LXXX"+ret;                break;                case 9:                ret="XC"+ret;                break;                default:                break;            }        }        else            return ret;        if(num>=100){            int x3=(num/100)%10;            switch(x3){                case 1:                ret='C'+ret;                break;                case 2:                ret="CC"+ret;                break;                case 3:                ret="CCC"+ret;                break;                case 4:                ret="CD"+ret;                break;                case 5:                ret='D'+ret;                break;                case 6:                ret="DC"+ret;                break;                case 7:                ret="DCC"+ret;                break;                case 8:                ret="DCCC"+ret;                break;                case 9:                ret="CM"+ret;                break;                default:                break;            }        }        else            return ret;        if(num>=1000){            int x4=(num/1000)%10;            switch(x4){                case 1:                ret='M'+ret;                break;                case 2:                ret="MM"+ret;                break;                case 3:                ret="MMM"+ret;                break;                default:                break;            }        }        else            return ret;        return ret;        }};后面看到別人比較簡潔的代碼如下:

class Solution {public:	const static string THOUS[];	const static string HUNDS[];	const static string TENS[];	const static string ONES[];    string intToRoman(int num) {		string result;		result += THOUS[(int)(num/1000)%10];		result += HUNDS[(int)(num/100)%10];		result += TENS[(int)(num/10)%10];		result += ONES[num%10];		return result;    }};const string Solution::THOUS[]	= {"","M","MM","MMM"};const string Solution::HUNDS[]	= {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};const string Solution::TENS[]	= {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};const string Solution::ONES[]	= {"","I","II","III","IV","V","VI","VII","VIII","IX"};這個代碼采用數組的方法。感覺我的好蠢。。。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武城县| 博湖县| 泸溪县| 尼勒克县| 兴山县| 乃东县| 类乌齐县| 龙游县| 正安县| 维西| 玉屏| 晋宁县| 海盐县| 汪清县| 玉山县| 河东区| 邯郸市| 进贤县| 宁津县| 广安市| 麟游县| 垦利县| 余姚市| 盘山县| 行唐县| 九龙县| 七台河市| 通许县| 连山| 门源| 田东县| 锦州市| 南通市| 库伦旗| 德州市| 安乡县| 六盘水市| 南乐县| 中阳县| 和静县| 逊克县|