2019-02-27-PAT乙级-1022-D进制的A+B

2019-02-27-PAT乙级-1022-D进制的A+B

2019-02-27-PAT乙级-1022-D进制的A+B

原文链接:PAT乙级-1022-D进制的A+B

github代码地址:HibisciDai/OJ-PAT-ACM

2019-02-27-PAT乙级-1022-D进制的A+B

编程描述

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

辅助描述

1
2
3
4
5
作者: CHEN, Yue
单位: 浙江大学
时间限制: 200 ms
内存限制: 64 MB
代码长度限制: 16 KB

输入格式

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

输出格式

输出 A+B 的 D 进制数。

输入样例

1
123 456 8

输出样例

1
1103

分析

578 转 8进制

1
2
3
4
8|579 - 3
8|72 - 0
8|9 - 1
1

记录除法的余数与模累次记录
跳出循环条件为 最后结果(商)小于进制数大小
最后一次需要把结果再加上最后结果数(商)

算法实现

JAVA(openjdk)

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int d = sc.nextInt();
sc.close();

int sum = a + b;
StringBuffer out = new StringBuffer();
int yushu = 0;

while (sum >= d) {
yushu = sum % d;
sum /= d;
out.append(yushu);
}
out.append(sum);

for (int i = out.length() - 1; i >= 0; i--) {
System.out.print(out.charAt(i));
}
}
}

运行结果

1
2
3
4
5
6
7
8
9
状态	分数	题目	编译器	耗时	用户
答案正确 20 1022 Java (openjdk) 179 ms HibisciDai
测试点 结果 耗时 内存
0 答案正确 158 ms 11248 KB
1 答案正确 141 ms 11560 KB
2 答案正确 179 ms 11504 KB
3 答案正确 154 ms 11716 KB
4 答案正确 139 ms 11256 KB
5 答案正确 175 ms 11312 KB
文章作者: HibisciDai
文章链接: http://hibiscidai.com/2019/02/28/2019-02-27-PAT乙级-1022-D进制的A+B/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HibisciDai
支付宝打赏
微信打赏