k对n求和,n可以分解为可以被k整除的部分x和余数m;
从小到大枚举数n(10*n'+1=10*(x+m)+1),因为x*10必定可以被k整除,问题就可以转化为枚举m(10*m'+1)是否可以被k整除
class Solution {
public:
int smallestRepunitDivByK(int K) {
int v=0;
for(int i=1;i<=1e5;++i)
{
v=(v*10+1)%K;
if(v==0) return i;
}
return -1;
}
};