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

การหาความยาวส่วนทศนิยมซ้ำใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับตัวเลข num เป็นอาร์กิวเมนต์เดียว

ฟังก์ชันควรทำสองสิ่ง

  • แรก ตรวจสอบว่าตัวเลขเป็นจำนวนเฉพาะร่วมกับ 10 หรือไม่ หากไม่ใช่ ให้คืนค่า -1 (ตัวเลขเป็นจำนวนเฉพาะร่วมกับอีกตัวหนึ่งถ้าตัวหารร่วมเดียวคือ 1)
  • หากตัวเลขเป็นจำนวนเฉพาะร่วมกับ 10 ให้คืนค่าความยาวของส่วนทศนิยมที่ซ้ำกัน เมื่อ 1 หารด้วยตัวเลขนั้น

ตัวอย่างเช่น หากอินพุตคือ

อินพุต

const num = 123;

เอาต์พุต

const output = 5;

คำอธิบายเอาต์พุต

เพราะตัวเลข 123 เป็นจำนวนเฉพาะร่วมกับ 10 แน่นอน

และเมื่อเราหาร 1 ด้วย 123 เราจะได้

1 / 123 = 0.008130081300813…

นี่แสดงชัดว่าส่วนทศนิยม 00813 ซ้ำไปเรื่อยๆ และความยาวคือ 5 ดังนั้นเอาต์พุตคือ 5

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

const num = 123;
const findRepeatingPart = (num = 1) => {
if (num % 2 === 0 || num % 5 === 0) {
return -1;
} else {
let res = 10 % num, count = 1;
while (res != 1) {
res = res * 10 % num;
count++;
};
return count;
}
};
console.log(findRepeatingPart(num));

ผลลัพธ์

5