我试图写一个代码块,它首先将数字(用模数运算符)分开,然后计算数字中有多少位数"6“。
我尝试了很多事情,但我认为我的思维方式有逻辑上的问题。
output = [];
var count = 0;
while (a > 0){
output.push(a % 10);
a = Math.floor(a/10);
if(a == 6){
count++;
}
}当我在Safari上运行这段代码时,它会显示输入的数字,但是它显示变量计数的"0“。
发布于 2019-10-23 00:24:05
Math.floor(a/10)不给出当前的数字。a % 10给出当前数字。
您可以检查当前数字a % 10是否为6。
实况示例:
let output = [];
let count = 0;
let a = 1667;
while (a > 0) {
let digit = a % 10;
output.push(digit);
if (digit == 6) {
count++;
}
a = Math.floor(a / 10);
}
console.log(count);
发布于 2019-10-23 00:25:33
你知道最后一个数字,所以你可以减去它,用10除以10,而不是使用Math.floor。
let number = 1626364656; // has 5 sixes
let sixesCount = 0;
while (number > 0) {
const digit = number % 10;
if (digit === 6) {
sixesCount++;
}
number = (number - digit) / 10;
}
console.log('Found', sixesCount, 'sixes.'); // "Found 5 sixes."https://stackoverflow.com/questions/58513793
复制相似问题