【PAT】1022.D进制的A+B

【PAT】1022.D进制的A+B

输入两个非负 10 进制整数 A 和 B ( ≤ 2 ​ 30 2​^{30} 230​ −1),输出 A+B 的 D (1

输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。

输出格式:
输出 A+B 的 D 进制数。

输入样例:
123 456 8

输出样例:
1103

题解

模拟:

import java.util.*;

public class Solution2 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int A, B, C, D;
        int[] result = new int[100];    //A、B最大是2^{30}-1,最长的二进制也不超过32位

        //直到文件EOF结束
        while (in.hasNextInt()) {
            A = in.nextInt();
            B = in.nextInt();
            D = in.nextInt();

            C = A + B;
            int n = 0;//记录转换的结果有几位

            do {
                result[n] = C % D;
                C /= D;
                ++n;
            } while (C > 0);

            //倒序输出
            for (int i = n - 1; i >= 0; --i) {
                System.out.print(result[i]);
            }
            System.out.println();
        }
    }
}

你可能感兴趣的:(Java相关,#,力扣及OJ,算法,java,数据结构)