1 条题解
-
0
题解:任意进制转十进制
思路
从左到右处理每一位,维护当前答案
ans:ans = ans * K + 当前数码这是位置计数法的逐步展开,也叫秦九韶式计算。数字字符减去
'0',字母字符减去'A'后再加 。复杂度
时间复杂度 ,空间复杂度 。
参考代码
#include <bits/stdc++.h> using namespace std; int value(char c) { if (c >= '0' && c <= '9') return c - '0'; return c - 'A' + 10; } int main() { int k; string s; cin >> k >> s; unsigned long long ans = 0; for (char c : s) { ans = ans * k + value(c); } cout << ans << "\n"; return 0; }
信息
- ID
- 5111
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 21
- 已通过
- 10
- 上传者
粤公网安备44195502000195号