yhxyd20
(张奕然)
1
6. 进制转换
题目ID:7988必做题100分
时间限制: 200ms
空间限制: 32000kB
题目描述
输入两个正整数 n,kn,k 。
其中nn是十进制表示,请将它转化成 kk 进制输出。
输出结果的 kk 进制数的各个数位用空格间隔。
请使用递归来实现本题。
输入格式:
两个正整数 n,kn,k。
输出格式:
一个kk进制数。
样例输入1:
192608173 19260817
样例输出1:
10 3
数据范围:
2≤n,k≤1092≤n,k≤109
1 个赞
周煊宸
(蒟蒻无了)
2
a循环从k的32次幂到k的0次幂,n依次整除a然后减n整除a的结果乘a,会写快速幂可以用快速幂,不会就用pow然后强制转int
1 个赞
chenxi1
(chenxi2009)
3
先不讲 k 进制,尝试看懂 10 进制是怎么分解各位数的。
不知道 n 有几位的情况下我们貌似不能快速地找到它的最高位,但是可以找到它的最低位(个位),n\bmod 10 就是它的最低位数。
然后可以发现第二低的位(十位)可以这么表示:(n\div10)\bmod10,百位是 (n\div100)\bmod 10…
同理,k 进制时每一位从低到高分别是 n\bmod k、(n\div k)\bmod k、(n\div k^2)\bmod k…去掉前导零,倒序输出即可。
4 个赞