在 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

更新於: 2021 年 4 月 22 日

275 次瀏覽

開啟你的職業生涯

完成該課程以獲得認證

立即開始
廣告