我太菜了,谁给我讲下思路?三克油外瑞马吃!

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 个赞

a循环从k的32次幂到k的0次幂,n依次整除a然后减n整除a的结果乘a,会写快速幂可以用快速幂,不会就用pow然后强制转int

1 个赞

先不讲 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 个赞

少见的讲解水题

1 个赞

大姐,我才算法1

1 个赞

(⊙o⊙)…。。。想起了曾经的我

:sweat_smile: 有没有可能我说的是chenxi