输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
其实就是考察十进制转换成其他进制的方法,这道题要先求和再转换,注意A+B的和可能超过int的范围,所以要用long。
十进制数N转换成D进制的过程,每次用N除以D,余数放到低位(右边为低位),然后用商继续除以D,重复以上步骤,直到商为0。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
long a = sc.nextInt();
long b = sc.nextInt();
int d = sc.nextInt();
long sum = a + b;
if (sum != 0) {
System.out.println(jz(sum, d));
} else {
System.out.println(0);
}
}
//把n转换成d进制
static String jz(long n, int d) {
if (n == 0) {
return "";
}
return jz(n / d, d) + n % d;
}
}