题目大意是:
给你三个整数,p,q,b。其中p/q是个分数。该题目要求你给出p/q在b进制下是否是个无限小数。
解题思路:
首先我们需要知道小数转化为二进制。假定有分数a/b(a<b),要将它转化为k进制。我们需要取a * k / b为第
一位。然后让a = a * k % b.重复以上步骤,直到a* k % b == 0;
a * k % b 一直不等于0那么就说明这个分数是无限小数。
如果判断 a * k % b 一直不等于0在代码层面是可行的,但是时间复杂度复杂度会比较高,而且从逻辑上说
也比较麻烦。
我们可以换一种思路,我们只要判断a * k % b 在小数转化为二进制这个过程是否能等于0即可。