Given a positive integer K, you need find the smallest positive integer N such that N is divisible by K, and N only contains the digit 1.
Return the length of N. If there is no such N, return -1.
Example 1:
Input: 1
Output: 1
Explanation: The smallest answer is N = 1, which has length 1.
Example 2:
Input: 2
Output: -1
Explanation: There is no such positive integer N divisible by 2.
Example 3:
Input: 3
Output: 3
Explanation: The smallest answer is N = 111, which has length 3.
Note:
1 <= K <= 10^5
1.思考
2.实现
class Solution {
public:
int smallestRepunitDivByK(int K) {
int n = 0;
for(int i=1; i<=K; i++){
n = (n*10+1) % K;//计算最大公约数的欧几里德算法
if(n==0)
return i;
}
return -1;
}
};
Weekly Contest 129--1022. Smallest Integer Divisible by K--Medium
原文:https://www.cnblogs.com/xuyy-isee/p/10596554.html