求当 (1/N) 表示为循环小数时循环节的长度。 循环节的长度是循环小数的重复部分的位数(如果有多种取法,则取最短的)。 注意:可以用有限数表示的数的循环节的长度为 1 。
输入的第一行为一个正整数 T ,表示测试用例的数量。 随后 T 行,每行给出正整数 N 。 1 ≤ T ≤ 100 2 ≤ N ≤ 10^9
输出当 (1/N) 表示为循环小数时循环节的长度。
3 2 3 7
1 1 6
考点:快速幂 · 数论 · 基础数学
数据规模 T ≤ 100 | 限制 1 秒 / 256MB | 标准输入输出
推荐方向:快速幂
把幂运算按二进制拆解,由 O(b) 降到 O(log b)。
思路框架(快速幂 通法 · 非本题专属)
实现要点:while (b) { if (b&1) res = res*a%mod; a = a*a%mod; b >>= 1; }
复杂度:时间 O(log b) | 空间 O(1)
该范式的通法易错点
对照本题
样例 1:输入 3 / 2 / 3 / 7 → 输出 1 / 1 / 6
0.5,0.333333,0.14285714285714.....
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2024年春招-京东-技术通用岗位-第一批笔试。