思路:
根据十进制加法的原理,我们实现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));
}
}