专栏文章
B3619 10 进制转 x 进制 题解
B3619题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minoarcg
- 此快照首次捕获于
- 2025/12/02 05:40 3 个月前
- 此快照最后确认于
- 2025/12/02 05:40 3 个月前
这道题就是一道板子题。
进制转 进制最主要的方法就是短除法。
例如, 进制数 转成 进制数使用短除法的过程就如 所示。
短除法除到商为 时,就除完了,再将每一步除得的余数从下到上排列就是得出的答案。
如 所示, 进制数 转成 进制就是 。
我们需要做的就是把这个过程用代码模拟一遍。
那怎么实现呢?
具体如下:
CPPstring answer = ""; // 存储最终答案
while (num) { // 模拟短除法并取余
if (num % x >= 10) answer += num % x - 10 + 'A';
else answer += num % x + '0';
num /= x;
}
做完短除法后,一定要将 反转一遍。
因为我们是边除边存储余数,在短除法中就是从上到下存储,但我们应该从下到上存储。
反转 的代码如下:
CPPreverse(answer.begin(), answer.end()); // 反转字符串
最后,把代码拼起来就完事了。
完整代码:
CPP#include <bits/stdc++.h>
using namespace std;
int main() {
int num, x;
cin >> num >> x;
string answer = ""; // 存储最终答案
while (num) { // 模拟短除法并取余
if (num % x >= 10) answer += num % x - 10 + 'A';
else answer += num % x + '0';
num /= x;
}
reverse(answer.begin(), answer.end()); // 反转字符串
cout << answer; // 输出答案
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...