【PAT乙级】1022 D进制的A+B (20分)

Yonina ·
更新时间:2024-11-10
· 688 次阅读

输入两个非负 10 进制整数 A 和 B (≤230−1≤2^{30}−1≤230−1),输出 A+BA+BA+B 的 DDD (1<D≤101<D≤101<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 AAA、BBB 和 DDD。

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

输入样例: 123 456 8 输出样例: 1103 解题思路:

除基取余法:十进制数 xxx 转换为D进制数 yyy 的方法。

int y[32], cnt = 0; do { y[cnt++] = x % d; x /= d; } while (x != 0); 答案代码: #include using namespace std; int main() { int a=0, b=0, d=0, sum=0; cin >> a >> b >> d; sum = a+b; // 除基取余法 int ans[32], cnt = 0; do { ans[cnt++] = sum % d; sum /= d; } while (sum != 0); for (int i = cnt - 1; i >= 0; i--) cout << ans[i]; return 0; }
作者:SEAN JIN



pat

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章