Lunar Sum (หรือ Dismal Addition) คือการบวกตัวเลขโดยไม่ได้บวกหลักตรงกัน แต่เอาค่าที่มากกว่าของแต่ละหลัก
ตัวอย่าง
879 + 768 หลักร้อย: max(8,7) = 8 หลักสิบ: max(7,6) = 7 หลักหน่วย: max(9,8) = 9 ผลลัพธ์: 879
ตัวอย่างโค้ด
const num1 = 6565;
const num2 = 7385;
const lunarSum = (num1, num2) => {
const numStr1 = String(num1);
const numStr2 = String(num2);
let res = 0;
for (let i = 0; i < numStr1.length; i++) {
const temp = Math.max(+numStr1[i], +numStr2[i]);
res = res * 10 + temp;
}
return res;
};
console.log(lunarSum(num1, num2));
สมมติฐาน
โค้ดสมมติว่าตัวเลขทั้งสองมีจำนวนหลักเท่ากัน หากไม่เท่ากันต้อง pad ด้วย 0 ด้านหน้า
ผลลัพธ์
7585
คณิตศาสตร์: Lunar arithmetic เป็นระบบคณิตศาสตร์แบบไม่มาตรฐาน ใช้ในทฤษฎีเลขคณิตเชิงนามธรรม