欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

LeetCode 1015. 可被 K 整除的最小整数(数学)

发布时间:2024/7/5 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 LeetCode 1015. 可被 K 整除的最小整数(数学) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1. 题目

给定正整数 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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/smallest-integer-divisible-by-k
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 2和5的倍数显然不能被全是1的数整除,证明见官网题解
  • 提前取余,避免溢出
(n*10+1)%K = ((n%K)*10+1)%K class Solution { public:int smallestRepunitDivByK(int K) {if((K&1)==0 || K%5==0) return -1;int len = 1, num = 1;while(num%K != 0){num = num*10+1;num %= K;len++;}return len;} };

4 ms 5.9 MB

总结

以上是生活随笔为你收集整理的LeetCode 1015. 可被 K 整除的最小整数(数学)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。