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