在我的问题中,在对 n
数字进行平方之后,我需要用小数 (d) 计算字符串中的每个数字。但是,我不知道如何才能做到这一点。这是我的代码:
function nbDig(n, d) {
let squareArr = [];
let contor = 0;
for (let i = 0; i <= n; i++) {
squareArr.push(i * i);
}
for (let i = 0; i < squareArr.length; i++) {
while (squareArr[i]) {
let lastDigit = squareArr[i] % 10;
squareArr[i] /= 10;
Math.floor(squareArr[i]);
if (lastDigit === d) {
contor++;
}
}
}
return contor;
}
答案 0 :(得分:0)
function nbDig(n, d) {
let squareArr = [];
let counter = 0;
for (let i = 0; i <= n; i++) {
squareArr.push(i * i);
}
for (let i = 0; i < squareArr.length; i++) {
while (squareArr[i]) {
let lastDigit = Math.floor(squareArr[i] % 10); // <- Updated
squareArr[i] /= 10;
squareArr[i] = Math.floor(squareArr[i]); // <- Updated ( Focus )
if (lastDigit === d) {
counter++;
}
}
}
return counter;
}
console.log(nbDig(10, 6))
答案 1 :(得分:0)
下面是一个例子,只使用一个数组来构建它的索引的平方,然后我们使用 filter & String.includes 来获取那些包含数字的数组,然后这个数组的长度就是计数。
另外一个好处是,如果您注释掉 .length
,它会显示找到的数字。
const nbDig = (n, d) =>
//create an array to loop over
new Array(n+1).fill()
//square the index
.map((_,ix) => ix * ix)
//filter out those with d
.filter(f => f.toString().includes(d))
//return length
.length;
console.log('nbDig(10, 1) = ' + nbDig(10, 1));
console.log('nbDig(20, 0) = ' + nbDig(20, 0));