N进制加法

思路:

根据十进制加法的原理,我们实现N进制的加法。
依旧是从末位开始逐位相加,并累加进位。

代码:

import java.util.*;

public class N进制加法 {

    static String addByBase(String a, String b, int base) {

        StringBuffer ans = new StringBuffer();

        int n = Math.max(a.length(), b.length()), carry = 0;

        for (int i = 0; i < n; i++) {
            carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;
            carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;
            ans.append((char) (carry % base + '0'));
            carry /= base;
        }

        if (carry > 0) {
            ans.append('1');
        }
        ans.reverse();

        return ans.toString();
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next(); // 数字 a
        String b = sc.next(); // 数字 b
        int base = sc.nextInt(); // 进制
        System.out.println(addByBase(a, b, base));
    }

}

参考:

N进制加法的实现

©️2020 CSDN 皮肤主题: 点我我会动 设计师:上身试试 返回首页