终于有点熟悉的感觉了,很纯粹的小算法,题解看官方,懒得写了。用不着哪些c++11甚至17的特性真的是太好了。
class Solution {
public:
int smallestRepunitDivByK(int k) {
int n, len, res;
int ans[100010];
len = 1;
if(k%2 == 0){
len = -1;
}
else{
memset(ans, 0, sizeof(ans));
n = 1;
res = n % k;
for(;res != 0 ;len ++){
if(ans[res] != 0){
len = -1;
break;
}
ans[res] = 1;
res = (res * 10 + 1) % k;
}
}
return len;
}
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)