1 条题解
-
0
题解:十进制转任意进制
思路
反复执行:
- 当前最低位是
N % K; - 删除最低位:
N /= K。
这样得到的数码顺序是从低位到高位,因此先放入字符串,最后反转。
特别注意:当 时,循环不会执行,需要单独输出
0。复杂度
时间复杂度 ,空间复杂度 。
参考代码
#include <bits/stdc++.h> using namespace std; int main() { unsigned long long n; int k; cin >> n >> k; string digit = "0123456789ABCDEF"; if (n == 0) { cout << 0 << "\n"; return 0; } string ans; while (n > 0) { ans += digit[n % k]; n /= k; } reverse(ans.begin(), ans.end()); cout << ans << "\n"; return 0; } - 当前最低位是
信息
- ID
- 5110
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 8
- 标签
- 递交数
- 73
- 已通过
- 10
- 上传者
粤公网安备44195502000195号