文章目录
问题描述解题报告实现代码参考资料
问题描述
给定正整数 K,你需要找出可以被 K 整除的、仅包含数字 1 的最小正整数 N。
返回 N 的长度。如果不存在这样的 N,就返回 -1。
示例 1:
输入:1 输出:1 解释:最小的答案是 N = 1,其长度为 1。 示例 2:
输入:2 输出:-1 解释:不存在可被 2 整除的正整数 N 。 示例 3:
输入:3 输出:3 解释:最小的答案是 N = 111,其长度为 3。
提示:
1 <= K <= 10^5
解题报告
实现代码
class Solution {
public:
int smallestRepunitDivByK(int K
) {
vector
<int>seen(K
, false);
int n
=0, ans
=0;
while(!seen
[n
]){
seen
[n
]=true;
n
=(10*n
+1)%K
;
ans
++;
}
if(n
==0) return ans
;
else return -1;
}
};
参考资料
[1]Leetcode 1015. 可被 K 整除的最小整数 [2] 题解区:大力王