1 条题解
-
0
1
#include <bits/stdc++.h> using namespace std; int x; string s; int a[40]; // 存 x 进制下的每一位 int b[40]; // 存 x 进制下每一位对应的权值 int main() { cin >> x >> s; int len = s.size(); // 翻转并转换成对应的整数存入数组 // s[0]~a[len-1], s[1]~a[len-2] for (int i = 0; i <= len - 1; i++) { if ('0' <= s[i] && s[i] <= '9') a[len - 1 - i] = s[i] - '0'; else a[len - 1 - i] = s[i] - 'A' + 10; } // 算出每一位的权值 b[0] = 1; for (int i = 1; i <= len - 1; i++) b[i] = b[i - 1] * x; // 每一位的数乘以对应权值相加 int ans = 0; for (int i = 0; i <= len - 1; i++) ans += a[i] * b[i]; cout << ans; return 0; }
2
#include <bits/stdc++.h> using namespace std; int x; string s; int a[40]; // 存 x 进制下的每一位 int main() { cin >> x >> s; int len = s.size(); // 翻转并转换成对应的整数存入数组 // s[0]~a[len-1], s[1]~a[len-2] for (int i = 0; i <= len - 1; i++) { if ('0' <= s[i] && s[i] <= '9') a[len - 1 - i] = s[i] - '0'; else a[len - 1 - i] = s[i] - 'A' + 10; } // 每一位的数乘以对应权值相加 int ans = 0; int B = 1; // 当前位对应的权值 for (int i = 0; i <= len - 1; i++) { ans += a[i] * B; B *= x; } cout << ans; return 0; }
- 1
信息
- ID
- 9329
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 21
- 已通过
- 13
- 上传者