36進製數的加法運算

2021-09-26 18:42:35 字數 906 閱讀 7759

題目:

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 二十進位制相加 字串...