เราต้องเขียนฟังก์ชันรับสองตัวเลข คืนผลคูณ แต่ห้ามใช้ตัวดำเนินการ (*)
เคล็ดลับ 1: ใช้ตัวดำเนินการหารสองครั้ง
เรารู้ว่าการคูณและการหารเป็นผกผันกัน ถ้าเราหารตัวเลขด้วยค่าผกผันของอีกตัวเลข จะไม่ได้ผลคูณของสองตัวเลขเหมือนกัน?
ดูโค้ด
const a = 20, b = 45; const product = (a, b) => a / (1 / b); console.log(product(a, b));
เคล็ดลับ 2: ใช้ลอการิทึม
ดูคุณสมบัติของลอการิทึม
log(a) + log(b) = log(ab)
ใช้คุณสมบัตินี้ โค้ด
ตัวอย่าง
const a = 20, b = 45;
const product = (a, b) => {
const logProduct = Math.log(a) + Math.log(b);
return Math.round(Math.exp(logProduct));
};
console.log(product(a, b));
ผลลัพธ์
ผลลัพธ์ในคอนโซลสำหรับทั้งสองจะเป็น
900