正经题解 - 二进制转 x 进制
2024-06-12 11:12:29
发布于:浙江
60阅读
0回复
0点赞
正经题解 - 二进制转 x 进制
题目分析
输入的时候需要用读入字符串
,再转为 进制下的数,再转为 进制。
进制转换问题,非常适合用递归来解决,注意一下若数为 时需特判输出。
AC代码
#include <iostream>
#include <string>
using namespace std;
typedef long long ll;
const int N = 2e5 + 10;
void fn(int a,int x) {
if (a == 0)return;
fn(a/x,x);
if (x <= 10) {
cout << a % x;
}else {
int b = a % x;
if (b <= 9) {
cout << b;
}else {
cout << char('A' + b - 10);
}
}
}
int main() {
string n;
int x;
cin >> n >> x;
int a = 0;
int base = 1;
for(int i=n.size()-1;i>=0;i--) {
a += (n[i] - '0') * base;
base *= 2;
}
if (a == 0)cout << 0;
fn(a,x);
return 0;
}
全部评论 1
作为一个没学递归的人
2024-06-15 来自 广东
0
有帮助,赞一个