intToRoman演算法題

2021-08-10 06:01:29 字數 660 閱讀 5272

做這道題之前得自己先寫寫阿拉伯數字與羅馬數字之間的轉換,找到他們之間的規律。剛開始的時候,我用了乙個很笨的辦法來完成這道演算法題。我想把乙個羅馬數字和阿拉伯數字對應的表給寫出來。先把1~10的寫出來,然後把10,20,30,40,50,60,70,80,90的羅馬數字寫出來,再把100,200,300,400,500,600,700,800,900對應的羅馬數字寫出來。把所給的數字分解成一位一位的數字,然後再進行一一對應。其實這是乙個非常非常笨的辦法,雖然可以做出來,但是屬於暴力破解的辦法,並沒有找到他們之間的規律。然後我不得不參考參考別人的解法,雖然不是自己的**,但是也要自己理解**的思路和方法。

string inttoroman(int num)

; string roman2=;

int elements=;

string str;

for (int i=0;i<4;i++)

else

if (b>=5&&b<9)

}else

if (b==4)

else

num=num%elements[i];//轉換完一位數,就對刪掉該位。利用求餘可以達到這個效果

}return

str;

}

ps:這道演算法題是對1~3999之前的數字進行轉換。

演算法 常見演算法題

演算法題 假如有100個不相同的數,比如從1到100,怎樣使用10次取出其中的10個不同的數字,要求每個數取出的概率一樣 一開始沒有說10次,所以我說,使用乙個random函式,以時間為種子來取,當取出乙個時,做標記,下次再取到這個數時,重新取一次 然後他就說了如果只能夠取10次怎麼辦?一開始我想到...

基礎演算法題

1.一百萬富翁遇到一陌生人,陌生人找他談乙個換錢的計畫,計畫如下 我每天給你十萬,而你每天只需要給我一分錢,第二天我仍然給你十萬元,你給我二分錢,第三天我仍然給你十萬,你給我四分錢.你每天給我的錢是前天的兩倍,直到乙個月 30天 百萬富翁很高興,欣然接受拉這個契約.請編寫乙個程式計算這乙個月中陌生人...

演算法題筆記

1 請給出乙個o nlogn 的演算法,使之能夠找出乙個n個數的序列中最長的單調遞增子串行。這是演算法導論中的一道課後題。解法一 利用求最長公共子串行的思想,將n個數的序列a先排序形成乙個有序的序列b,然後利用動態規劃的思想求a與b的最長公共子串行,得到的最長公共子串行就是所求的解。但是我們知道最長...