題目:
36進製由0-9,a-z,共36個字元表示,最小為'0'
'0''9'對應十進位制的09,'a''z'對應十進位制的1035
例如:'1b' 換算成10進製等於 1 * 36^1 + 11 * 36^0 = 36 + 11 = 47
要求按照加法規則計算出任意兩個36進製正整數的和
如:按照加法規則,計算'1b' + '2x' = '48'
要求:不允許把36進製數字整體轉為10進製數字,計算出10進製數字的相加結果再轉回為36進製
思路:建立乙個字串,
string nums = "0123456789abcdefghijklmnopqrstuvwxyz";
找到兩個字串相加字母 在 字串nums 中的位置, 這個位置就是字母所表示的大小,例如z:35. a:10
然後用位置相加,如果相加的結果超過36,則進製;否則不進製。
最後把剩下的字串加到儲存的結果中,翻轉結果即可。
string nums = "0123456789abcdefghijklmnopqrstuvwxyz";
string f(string s1, string s2)
else
i--;
j--;
} //如果字串s1還有剩餘
while (i >= 0)
else
i--;
} // 如果字串s2還有剩餘
while (j >= 0)
else
j--;
} // 如果最後一位還有進製,再加乙個1
if (temp != 0)
reverse(sb.begin(), sb.end());
return sb;
}
36進製數的加法運算
論壇上有人提出用36進製進行加法運算,而且要求一定得用 sql 語句寫,其36進製即採用0 9,a z這36個符號表示數值,試著寫了玩兒 建立字元轉換為數值的函式 create function cton36 s varchar 12 returns bigint asbegin declare n...
36進製數與10進製數互轉
10進製整數轉化成36進製字串 include stdafx.h include int main for i 0 num i for i i 0 i printf c a i 10 a i 0 a i 10 a printf n return 0 引數描述 hex10 被轉換10進製數字 測試方法...
二十進位制數的加法
題目詳情 在二十進位制中,我們除了使用數字0 9以外,還使用字母a j 表示10 19 給定兩個二十進位制整數,求它們的和。輸入是兩個二十進位制整數,且都大於0,不超過100位 輸出是它們的和 二十進位制 且不包含首0。我們用字串來表示二十進位制整數。class program 二十進位制相加 字串...