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

บวกหลักของตัวเลขด้วยมากกว่า 2 วิธีใน JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลขและบวกหลักของตัวเลขซ้ำๆ จนกลายเป็นตัวเลขหลักเดียว

เราจะแก้ปัญหานี้ด้วยสองวิธี:

วิธี 1: ใช้ลูป (Loops)

วิธีนี้ใช้ while loop เพื่อบวกหลักของตัวเลขซ้ำๆ แบบ recursive

ตัวอย่าง

const num = 123456;

const addDigits = (num = 1) => {
  let sum = num;
  while(sum % 10 !== sum){
    let sum1 = 0;
    while(sum > 0){
      sum1 += sum % 10;
      sum = Math.floor(sum / 10);
    }
    sum = sum1;
  };
  return sum;
};

console.log(addDigits(num));

วิธี 2: ใช้วิธีคงที่ (O(1) time complexity)

วิธีนี้ใช้สูตร Congruence ของคณิตศาสตร์ ผู้อ่านควรศึกษาสูตรนี้เพื่อเข้าใจวิธีแก้ปัญหานี้ได้ดียิ่งขึ้น

ตัวอย่าง

const num = 123456;

const addDigits = (num = 1) => {
  let predicate = (num - 1) % 9;
  return ++predicate;
};

console.log(addDigits(num));

ผลลัพธ์

ผลลัพธ์ในคอนโซลสำหรับทั้งสองวิธีจะเป็นดังนี้:

3