ปัญหา
เราสามารถตรวจสอบว่าเลขหนึ่งหารด้วย 7 ลงตัวได้หรือไม่ โดยใช้หลักการ: ถ้าเลขอยู่ในรูปแบบ 10a + b และ a - 2b หารด้วย 7 ลงตัว
เราทำซ้ำกระบวนการนี้จนได้เลขที่รู้ว่าหารด้วย 7 ลงตัว สามารถหยุดได้เมื่อเลขเหลือสูงสุด 2 หลัก เพราะเราควรทราบว่าเลข 2 หลักหรือน้อยกว่านั้นหารด้วย 7 ลงตัวหรือไม่
เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข และคืนค่าจำนวนขั้นตอนที่ใช้ในการลดเลขให้เหลือสูงสุด 2 หลัก และเลข 2 หลักนั้น
อินพุต
const num = 1603;
เอาต์พุต
const output = [7, 2];
เพราะขั้นตอนมีดังนี้:
160 - 2*3 = 154
15 - 2*8 = 7
และค่าสุดท้ายคือ 7
ตัวอย่าง
โค้ดตัวอย่างดังนี้:
const num = 1603;
const findSteps = (num) => {
let times = 0;
let result = 0;
let number = String(num);
while(number.length > 2){
times++;
let firstNumber = Number(number.slice(-1))
const remaining = Number(number.slice(0, number.length - 1))
result = remaining - 2 * firstNumber
number = String(result)
}
return [result, times]
}
console.log(findSteps(num));
ผลลัพธ์
[7, 2]