题解 | #36进制加法#

36进制加法

https://www.nowcoder.com/practice/c5db069fd9d64e6e9cf5fd68860abcdd

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param A string字符串 
     * @param B string字符串 
     * @return string字符串
     */
    public String thirtysixAdd (String A, String B) {
        // write code here
        int add = 0;
        StringBuilder sb = new StringBuilder();
        char[] arr1 = A.toCharArray();
        char[] arr2 = B.toCharArray();
        int a = arr1.length - 1;
        int b = arr2.length - 1;
        while (a >= 0 || b >= 0 || add != 0) {
            int x = a >= 0 ? (Character.isDigit(A.charAt(a)) ? A.charAt(a) - '0' : (A.charAt(a) - 'a' + 10))
                : 0;
            int y = b >= 0 ? (Character.isDigit(B.charAt(b)) ? B.charAt(b) - '0' : (B.charAt(b) - 'a' + 10))
                : 0;  
            int res = (x + y + add) % 36;
            if (res >= 0 && res <= 9) {
                sb.append((char)(res + '0'));
            } else {
                sb.append((char)(res - 10 + 'a'));
            }
            add = (x + y + add) / 36;
            a--;
            b--;      
        }
        return sb.reverse().toString();
    }
}

全部评论

相关推荐

11-08 17:36
诺瓦科技_HR
点赞 评论 收藏
分享
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务