1 找出字符串的可整除数组
一个整数可表示为 a×10+b;
常用取模公式:(a×10+b)%m=(a%m×10+b)%m
由上式可得:当前字符串所代表的数字,能否被 m 整除。等价于前一个字符串与 m 的余数+当前数字的和,这个和能否被 m 整除。
例如:99998 是否可以被7整除,9999%7等价于上面公式里面的a%m,因为99998可以被9999x10+8表示,所以(9999%7x10+8 )%7=99998%7。再解释一下为啥要乘10,
例如:"1010"被10整除,101%10=1; 1+0=1,1再模上10还是等于1,这样就会出错,因为1010是可以被10整除的。
所以最后结果就是
var divisibilityArray = function(word, m) {const res = [];let cur = 0;for (const c of word) {cur = (cur * 10 + (c.charCodeAt(0) - '0'.charCodeAt(0))) % m;res.push(cur === 0 ? 1 : 0);}return res;
};//parseInt(c)===(c.charCodeAt(0) - '0'.charCodeAt(0))