Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การหาความต่างระหว่างผลคูณและผลรวมของหลักตัวเลขใน JavaScript

บทความนี้สาธิตการคำนวณผลรวมและผลคูณของหลักตัวเลข แล้วหาความต่างสัมบูรณ์

ตัวอย่าง

num = 12345
sum = 15, product = 120, diff = 105

ตัวอย่างโค้ด

const num = 12345;

const product = (num, res = 1) => {
  if (num) {
    return product(Math.floor(num / 10), res * (num % 10));
  }
  return res;
};

const sum = (num, res = 0) => {
  if (num) {
    return sum(Math.floor(num / 10), res + (num % 10));
  }
  return res;
};

const productSumDifference = (num = 1) => {
  return Math.abs(product(num) - sum(num));
};

console.log(productSumDifference(num));

ผลลัพธ์

105

คำอธิบาย

ใช้ recursion แยกหลักตัวเลขด้วย % 10 และ / 10

product: base case num=0 คืน 1 (identity), sum: base case คืน 0

Time: O(log n) digits, Space: O(log n) recursion stack

Iterative version ใช้ while loop ได้เช่นกัน