ในระบบฐานสิบ ตัวเลขจริงแบ่งได้ 2 กลุ่ม: จำนวนตรรกยะ (Rational) และ จำนวน無理ตรรกยะ (Irrational)
สำหรับปัญหานี้ เราพูดถึงเฉพาะจำนวนตรรกยะ คือ ตัวเลขที่เขียนในรูป p/q (q ≠ 0) ได้ เช่น 14, 4.6, 3.333...
จำนวนตรรกยะแบ่งเพิ่มอีก 2 กลุ่ม:
- ทศนิยมสิ้นสุด (Terminating decimal)
- ทศนิยมซ้ำ (Repeating decimal)
การแบ่งขึ้นอยู่กับผลหาร p/q กฎคือ:
- ได้ทศนิยมสิ้นสุดก็ต่อเมื่อเฉพาะตัวประกอบเฉพาะของ q เป็น 2 และ 5 เท่านั้น
- ได้ทศนิยมซ้ำถ้าตัวประกอบของ q มีตัวอื่นนอกจาก 2 และ 5
เราต้องเขียนฟังก์ชันที่รับตัวเลข q และคืนค่า true ถ้าได้ทศนิยมสิ้นสุด false ถ้าไม่ใช่
ตัวอย่าง
โค้ดต่อไปนี้เป็นตัวอย่าง:
const num = 1250;
const isTerminating = num => {
while(num !== 1){
if(num % 2 === 0){
num /= 2;
}else if(num % 5 === 0){
num /= 5;
}else{
return false;
};
};
return true;
};
console.log(isTerminating(num));ผลลัพธ์
จะแสดงผลในคอนโซลดังนี้:
true