36进制的和 - 面试题目 - bd

36进制的和 - 面试题目 - bd

主要是对数字和字符之间的转化处理操作,以及StringBuilder的reverse方法和toString方法。

package com.lhb.bytedance;

/**
 * @author lhb
 * @date 2022/3/12
 */
public class _32_Add {
    // 将获取到的字符转化为数字
    public static int getInt(char c) {
        if (c <= '9') {
            return c - '0';
        }else {
            return (c - 'a') + 10;
        }
    }
    // 将数字转化为字符
    public static char getChar(int n) {
        if (n <= 9) {
            return (char) (n + '0');
        } else {
            return (char) (n - 10 + 'a');
        }
    }
    public static String _36_add(String a, String b) {
        int i = a.length() - 1, j = b.length() - 1;
        StringBuilder sb = new StringBuilder(); 
        // 表示进位
        int car = 0;
        while (i >= 0 || j >= 0 || car > 0) {
            int v1 = i < 0 ? 0 : getInt(a.charAt(i));
            int v2 = j < 0 ? 0 : getInt(b.charAt(j));
            int t = v1 + v2 + car;
            car = t / 36;
            sb.append(getChar(t % 36));
            i--;
            j--;
        }
        return sb.reverse().toString();
    }
    public static void main(String[] args) {
        String a = "12h";
        String b = "12";
        System.out.println(_36_add(a, b));
    }
}

 

posted @ 2022-03-12 21:39  牵魂  阅读(27)  评论(0)    收藏  举报