十进制转K进制的一般步骤:
- 取余K并记录
- 原数整除K
- 最后对取余结果倒序
void trans(long long m) {
long long res[20]; // 长度根据实际情况而定
int l = 0;
while (m) {
res[l++] = m%K;
m /= K;
}
for (int i = l-1; i >= 0; i--) {
printf("%d",res[i]);
// 如果是十六进制提前准备一个字符数组c,输出:printf("%c",c[res[i]])
}
printf("n");
}
实际例题
2333进制
#includevoid trans(long long m) { long long res[20]; int l = 0; while (m) { res[l++] = m%2333; m /= 2333; } for (int i = l-1; i >= 0; i--) { printf("%d",res[i]); if (i != 0) printf(" "); } printf("n"); } int main() { int n; long long m; scanf("%d",&n); for (int i = 0; i < n; i++){ scanf("%lld",&m); trans(m); } return 0; }



