1022 D进制的A+B (20)(20 point(s))
输入两个非负10进制整数A和B(<=2^30^-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1103
Solution:
两数相加计算出的值不断取余数, 除以D, 算出的数进栈, 打印时利用栈的FILO特性 按照二进制数顺序打印。
坑点1:
刚开始觉得两个整数相加可能会溢出, 但是实验之后int v = pow(2, 30);
printf("%d\n", 2*v); // 数值正常不会溢出
int整数的范围在,-2^31 ~ +(2^31 -1)
,-2 * 10^9 ~ 2 * 10^9
之内, 因此不会溢出
坑点2:
当总和为0时, 无论什么进制都打印出0.
|