CF2020A Find Minimum Operations
题目描述
给定两个整数 $n$ 和 $k$。
每次操作,你可以从 $n$ 中减去 $k$ 的任意次幂。具体来说,每次操作,你可以将 $n$ 替换为 $n - k^x$,其中 $x$ 为任意非负整数。
请你求出将 $n$ 变为 $0$ 所需的最少操作次数。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
接下来每组测试用例占一行,每行包含两个整数 $n$ 和 $k$($1 \le n, k \le 10^9$)。
输出格式
对于每组测试用例,输出一个整数,表示将 $n$ 变为 $0$ 所需的最少操作次数,每个答案占一行。
说明/提示
在第一个测试用例中,$n = 5$,$k = 2$。我们可以按如下顺序进行操作:
1. 从 $5$ 中减去 $2^0 = 1$,此时 $n$ 变为 $5 - 1 = 4$。
2. 从 $4$ 中减去 $2^2 = 4$,此时 $n$ 变为 $4 - 4 = 0$。
可以证明,没有办法用少于 $2$ 次操作将 $n$ 变为 $0$,因此答案为 $2$。
在第二个测试用例中,$n = 3$,$k = 5$。我们可以按如下顺序进行操作:
1. 从 $3$ 中减去 $5^0 = 1$,此时 $n$ 变为 $3 - 1 = 2$。
2. 从 $2$ 中减去 $5^0 = 1$,此时 $n$ 变为 $2 - 1 = 1$。
3. 从 $1$ 中减去 $5^0 = 1$,此时 $n$ 变为 $1 - 1 = 0$。
可以证明,没有办法用少于 $3$ 次操作将 $n$ 变为 $0$,因此答案为 $3$。
由 ChatGPT 4.1 翻译