Leetcode 1015. 可被 K 整除的最小整数【构造循环节】

    科技2025-05-04  11

    文章目录

    问题描述解题报告实现代码参考资料

    问题描述

    给定正整数 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] 题解区:大力王

    Processed: 0.015, SQL: 8