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

จำนวนการยกตัว (carries) ในการบวกสองตัวเลขใน JavaScript


ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข 2 ตัว ฟังก์ชันควรนับจำนวนครั้งที่ต้อง "ยกตัว" (carry) ขณะบวกตัวเลขทั้งสองเหมือนบนกระดาษ

เช่น ในภาพ การบวก 179 และ 284 ใช้การยกตัว 2 ครั้ง ดังนั้นฟังก์ชันควรคืนค่า 2

จำนวนการยกตัว (carries) ในการบวกสองตัวเลขใน JavaScript

ตัวอย่าง

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

const num1 = 179;
const num2 = 284;
const countCarries = (num1 = 1, num2 = 1) => {
  let res = 0;
  let carry = 0;
  while(num1 + num2){
    carry = +(num1 % 10 + num2 % 10 + carry > 9);
    res += carry;
    num1 = num1 / 10 | 0;
    num2 = num2 / 10 | 0;
  };
  return res;
};
console.log(countCarries(num1, num2));

ผลลัพธ์

ผลลัพธ์ในคอนโซล:

2