题目链接:[编程题]进制转换
题意:
给一个10进制数,将其转换成 n 进制的数 如果n > 9 ,那么A = 10, B= 11.....
解题思路:
取余然后反过来就行, 注意一下负数就行
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int ans = 0;
ll n, sum;
vector<ll> a;
void dfs(ll res, int index) {
if(res > sum) {
return ;
}
if(res == sum) {
ans++;
return ;
}
for(int i = index; i < n; i++) {
res += a[i];
dfs(res, i+1);
res -= a[i];
}
}
int main(){
int m, n, u;
cin >> m >> n;
u = m;
vector<char> ans;
if(m < 0) {
m = -m;
}
while(m){
int k = m % n;
if(k < 10) {
ans.push_back(k+'0');
} else {
ans.push_back(k-10 + 'A');
}
m = m / n;
}
if(u < 0) {
ans.push_back('-');
}
for(int i = ans.size()-1; i >= 0; i--) {
cout << ans[i];
}
cout << endl;
return 0;
}