5 条题解
-
0
/* 思路 思路一: 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; }
信息
- ID
- 96
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 407
- 已通过
- 187
- 上传者