36進製
對於16進製制,我們使用字母a-f來表示10及以上的數字。
如法炮製,一直用到字母z,就可以表示36進製。
36進製中,a表示10,z表示35,aa表示370
你能算出 many 表示的數字用10進製表示是多少嗎?
請提交乙個整數,不要填寫任何多餘的內容(比如,說明文字)
思路:a表示10,z表示35,我們需要將英文本母和數字對應起來,顯然我們需要用到map來儲存鍵值對
將任意進製數轉換成十進位制,是同乙個方法,公式如下:number(10進製)=原數第一位*原數進製的0次方+原數第二位*原數進製的1次方+原數第三位*原數進製的2次方+...+原數第n位*原數進製的n-1次方
具體思路如下:
1.申明乙個map,用英文本母索引數字,將「鍵值對1」-1,...,「9」-9,「a」-10,..."z"-35存入map中
宣告乙個字串,用來儲存需要轉換的36進製數
宣告乙個int型變數sum,初始化為0,,用來累加,
宣告乙個int 型變數length,用來儲存36進製數字的長度
2.用string的strsub方法擷取s的倒數第乙個字母,用map通過字母找到該字母對應的數字,sum=sum+map[string.strsub(length-1,1)]*pow(36,length-1);
3.用string的strsub方法擷取s的倒數第二個字母,用map通過字母找到該字母對應的數字,sum=sum+map[string.strsub(length-2,1)]*pow(36,length-2);
.................此處省略n-3步...............
n.用string的strsub方法擷取s的第乙個字母,用map通過字母找到該字母對應的數字,sum=sum+map[string.strsub(0,1)]*pow(36,0);
最後輸出結果即可
#include#include#includeusing namespace std;
int main() {
mapmapnumber;
mapnumber.insert(pair("1",1));
mapnumber.insert(pair("2",2));
mapnumber.insert(pair("3",3));
mapnumber.insert(pair("4",4));
mapnumber.insert(pair("5",5));
mapnumber.insert(pair("6",6));
mapnumber.insert(pair("7",7));
mapnumber.insert(pair("8",8));
mapnumber.insert(pair("9",9));
mapnumber.insert(pair("a",10));
mapnumber.insert(pair("b",11));
mapnumber.insert(pair("c",12));
mapnumber.insert(pair("d",13));
mapnumber.insert(pair("e",14));
mapnumber.insert(pair("f",15));
mapnumber.insert(pair("j",16));
mapnumber.insert(pair("h",17));
mapnumber.insert(pair("i",18));
mapnumber.insert(pair("g",19));
mapnumber.insert(pair("k",20));
mapnumber.insert(pair("l",21));
mapnumber.insert(pair("m",22));
mapnumber.insert(pair("n",23));
mapnumber.insert(pair("o",24));
mapnumber.insert(pair("p",25));
mapnumber.insert(pair("q",26));
mapnumber.insert(pair("r",27));
mapnumber.insert(pair("s",28));
mapnumber.insert(pair("t",29));
mapnumber.insert(pair("u",30));
mapnumber.insert(pair("v",31));
mapnumber.insert(pair("w",32));
mapnumber.insert(pair("x",33));
mapnumber.insert(pair("y",34));
mapnumber.insert(pair("z",35));
string s;
s="many";
int length=s.size();
int sum=0;
for(int i=0; i感謝小哥哥,小姐姐看到了這裡,thanks♪(・ω・)ノ
藍橋杯第八屆決賽
精神狀態不好的時候怎麼寫 真的哭了,一堆sb錯誤 對於16進製制,我們使用字母a f來表示10及以上的數字。如法炮製,一直用到字母z,就可以表示36進製。36進製中,a表示10,z表示35,aa表示370 你能算出 many 表示的數字用10進製表示是多少嗎?請提交乙個整數,不要填寫任何多餘的內容 ...
第八屆藍橋杯決賽總結
最後只得了個國三安慰獎,心裡遺憾也不遺憾。省賽結束後就一直沒認真刷過題,國三也是意料之中吧。比賽題目也是中規中矩,只是自己沒好好準備。第一題很簡單的簽到題。第二題其實之前做過很多態別題,dfs,然而由於自己太久沒做題,沒手感沒題感,寫了近乙個小時,還是沒能出結果。第三題 補全題,類似生成樹,前幾屆決...
等差素數列 第八屆藍橋杯c c B組
等差素數列 2,3,5,7,11,13,是素數序列。類似 7,37,67,97,127,157 這樣完全由素數組成的等差數列,叫等差素數數列。上邊的數列公差為30,長度為6。2004年,格林與華人陶哲軒合作證明了 存在任意長度的素數等差數列。這是數論領域一項驚人的成果!有這一理論為基礎,請你借助手中...