思路:
根据十进制加法的原理,我们实现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();
String b
= sc
.next();
int base
= sc
.nextInt();
System
.out
.println(addByBase(a
, b
, base
));
}
}
参考:
N进制加法的实现
转载请注明原文地址:https://blackberry.8miu.com/read-35520.html