หาผลคูณของทุกหลักในตัวเลข หากมีหลักเป็น 0 ให้ถือเป็น 1 (ไม่ให้ผลคูณเป็น 0)
ตัวอย่าง
5720 → 5 × 7 × 2 × 1(แทน 0) = 70
ตัวอย่างโค้ด (Recursive)
const num = 5720;
const recursiveProduct = (num, res = 1) => {
if (num) {
return recursiveProduct(Math.floor(num / 10), res * (num % 10 || 1));
}
return res;
};
console.log(recursiveProduct(num));
ผลลัพธ์
70
วิธีแบบ Iterative
const productOfDigits = num => {
let product = 1;
for (const digit of String(Math.abs(num))) {
product *= +digit || 1;
}
return product;
};
ใช้ || 1 แทนที่ 0 ด้วย 1 ตรงในการคูณ