/*
思路
思路一:
1. string先接收再char数组接收
2. 每一位的数字乘以它的(数位减一次方)
*/
/*改进
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str;
int n;
cin >> str >> n;
vector<char> ch;
for ( char c : str ) {
ch.push_back(c);
}
vector<char> chs(ch.size());
int j = 0;
for ( int i = ch.size()-1; i >= 0; i-- ) {
chs[j] = ch[i];
j++;
}
int count = 0;
for ( size_t i = 0; i < chs.size(); i++ ) {
count += (chs[i] - 48) * pow(n,i);
}
cout << count << endl;
return 0;
}*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
string numStr;
int base;
cin >> numStr >> base;
//创建动态数组 digits(数位)
vector<char> digits(numStr.size());
for ( size_t i = 0; i < digits.size(); i++ ) {
digits[i] = numStr[numStr.size()-1-i];
}
//计算进制
int result = 0;
int power = 1;
for ( size_t i = 0; i < digits.size(); i++ ) {
if ( digits[i] >= 'A' && digits[i] <= 'F' ) {
result += (digits[i] - 'A' + 10) * power;
}else {
result += (digits[i] - '0') * power;
}
power *= base;
}
cout << result << endl;
return 0;
}
0 回复
0 转发
0 喜欢
7 阅读



