36进制加法-415. 字符串相加
Posted hequnwang10
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了36进制加法-415. 字符串相加相关的知识,希望对你有一定的参考价值。
一、题目描述
36进制由0-9,a-z,共36个字符表示
不允许把36进制数字整体转为10进制数字,计算出10进制数字的相加结果再转回为36进制
示例 1:
'1b' 换算成10进制等于 1 * 36^1 + 11 * 36^0 = 36 + 11 = 47
要求按照加法规则计算出任意两个36进制正整数的和
如:按照加法规则,计算'1b' + '2x' = '48'
二、解题
字符串相加
这题可以参照415题。主要是将原来的10进制转为36进制。
public String add36Strings(String num1, String num2)
int carry = 0;
int length1 = num1.length()-1, length2 = num2.length()-1;
StringBuffer res = new StringBuffer();
while(length1 >=0 || length2 >=0 || carry == 1)
int x = length1 >= 0 ? getInt(num1.charAt(length1)) : 0;
int y = length2 >= 0 ? getInt(num2.charAt(length2)) : 0;
int temp = x + y + carry;
res.append(getChar(temp % 36));
carry = temp / 36;
length1-- ;
length2--;
return res.reverse().toString();
public char getChar(int n)
if(n <= 9)
return (char) (n + '0');
else
return (char) (n - 10 + 'a');
public int getInt(char ch)
if('0' <= ch && ch <='9')
return ch - '0';
else
return ch - 'a' + 10;
以上是关于36进制加法-415. 字符串相加的主要内容,如果未能解决你的问题,请参考以下文章
输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,加法计算方法以二进制方式计算,并返回对应的字符串结果。