首頁 > web前端 > js教程 > 主體

JavaScript 程式計算可被 8 整除的旋轉次數

PHPz
發布: 2023-09-03 10:05:08
轉載
1309 人瀏覽過

JavaScript 程序计算可被 8 整除的旋转次数

問題陳述 - 我們給了一個數字。我們需要旋轉該數字,並需要找到能被 8 整除的旋轉總數。

在這裡,我們將學習兩種不同的方法來計算可被 8 整除的旋轉次數。

旋轉數字並檢查旋轉是否能被 8 整除

第一種方法是旋轉數字並逐一取得每個可能的旋轉。另外,檢查旋轉是否能被 8 整除。如果是,則在計數中加 1。

文法

使用者可以依照下面的語法,透過旋轉數字來計算可被 8 整除的旋轉次數。

for ( ) {
   str = lastDigit + str.substring(0, str.length - 1);
   let num = parseInt(str);
   if (num % 8 == 0) {
      count++;
   }
}
登入後複製

在上面的語法中,我們取得數字字串的最後一位數字並將其附加到字串的開頭以旋轉數字。

演算法

  • 第 1 步 - 將計數變數初始化為 0,表示最初的計數為零。

  • 步驟 2 - 使用 for 迴圈迭代數字字串,並使總旋轉等於數字字串的長度。

  • 步驟 3 - 在 for 迴圈中,取得數字字串的最後一位數字。另外,取得包含前 n-1 位數字的子字串。

  • 第 4 步 - 在子字串的開頭附加最後一個數字以旋轉數字字串。

  • 第 5 步 - 使用 parseInt() 方法從字串中提取數字。

  • 第 6 步 - 檢查旋轉是否能被 8 整除。如果是,則將計數值增加 1。

  • 第 7 步 - 一旦我們使用 for 迴圈檢查所有旋轉,就傳回計數值。

範例 1

在下面的範例中,rotationsDivisibleBy8() 函數接受一個數字作為參數,並傳回可被 8 整除的旋轉總數。此外,我們首先使用 toString() 方法將數字轉換為字串,然後實作上述演算法計算可被 8 整除的旋轉次數。

<html>
<body>
   <h3> Program to find the total number of rotations divisible by 8 </h3>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      const rotationsDivisibleBy8 = (number) => {
         let count = 0;
         //Count rotations divisible by 8 by rotating numbers
         let str = number.toString();
         for (let i = 0; i < str.length; i++) {
         
            //Get the last character of the string
            let lastDigit = str[str.length - 1];
            
            // rotating number
            str = lastDigit + str.substring(0, str.length - 1);
            
            // convert string to integer
            let num = parseInt(str);
            
            //Check if num is divisible by 8
            if (num % 8 == 0) {
               count++;
            }
         }
         return count;
      }
      let number = 90645232432;
      output.innerHTML = "Total count of rotations divisible by 8 of " + number + " is " + rotationsDivisibleBy8(number);
   </script>
</body>
</html>
登入後複製

檢查三位數是否能被 8 整除

如果任何數字的最後三位數字能被8整除,我們就可以說整個數字能被8整除。所以,這裡我們可以取一對連續的三個數字,並檢查這對數字是否能被8整除。如果是,則表示末尾包含該三位數的旋轉可以被8整除。

文法

使用者可以依照下面的語法來計算可被 8 整除的旋轉次數。

for ( ) {
   let pairOf3 = numStr.substring(i, i + 3);
   if (pairOf3 % 8 == 0) {
      count++;
   }
}
登入後複製

在上面的語法中,我們使用了 substring() 方法來取得三位數字對。

演算法

  • 第 1 步 - 使用 toString() 方法將數字轉換為字串。

  • 步驟 2 - 如果數字的長度等於 1,如果該數字能被 8 整除,則傳回 1;否則,回傳0。

  • 步驟 3 - 如果數字的長度等於 2,請檢查從可能的旋轉和返回計數中可以被 8 整除的旋轉次數。

  • 步驟 4 - 對於超過 3 位的數字,使用 substring() 方法並提取這對連續的三位數字。之後,檢查該對是否能被 8 整除,並增加計數值。

  • 步驟5 - 另外,檢查包含最後兩位數字和第一位數字、最後一位數字和前兩位數字的對,並相應地增加「計數」的值。

範例 2

在下面的範例中,我們使用 for 迴圈和 substring() 方法來取得 n-2 對三位數,並檢查它是否能被 8 整除。在輸出中,使用者可以觀察到給定的數字包含總共 5 次旋轉可被 8 整除。

<html>
<body>
   <h3> Program to find the total number of rotations divisible by 8 </h3>
   <div id = "output"> </div>
   <script>
      let output = document.getElementById('output');
      const rotationsDivisibleBy8 = (number) => {
         let count = 0;
         let numStr = number.toString();
         let n = numStr.length;
         if (n == 1) {
            // for 1 digit
            return number % 8 == 0 ? 1 : 0;
         }
         else if (n == 2) {
         
            // for 2 digits
            if (number % 8 == 0) {
               count++;
            }
            let temp = numStr.substring(1, 2) + numStr.substring(0, 1);
            if (temp % 8 == 0) {
               count++;
            }
            return count;
         }
         else {
         
            // for 3 digits
            for (let i = 0; i < n - 2; i++) {
               let pairOf3 = numStr.substring(i, i + 3);
               if (pairOf3 % 8 == 0) {
                  count++;
               }
            }
            
            // for last two and first digit
            let lastTwo = numStr.substring(n - 2, n);
            let firstDigit = numStr.substring(0, 1);
            let lastTwoFirstDigit = lastTwo + firstDigit;
            if (lastTwoFirstDigit % 8 == 0) {
               count++;
            }
            
            // for last digit and first two digits
            let lastDigit = numStr.substring(n - 1, n);
            let firstTwo = numStr.substring(0, 2);
            let lastDigitFirstTwo = lastDigit + firstTwo;
            if (lastDigitFirstTwo % 8 == 0) {
               count++;
            }
            return count;
         }
      }
      let number = 104104104104104;
      output.innerHTML = "Total count of rotations divisible by 8 of " + number + " is " + rotationsDivisibleBy8(number);
   </script>
</body>
</html>
登入後複製

使用者學習了兩種不同的方法來計算可被 8 整除的旋轉總數。在第一種方法中,我們取得所有可能的旋轉並檢查它是否能被 8 整除。在第二種方法中,我們使用數字的屬性使其能被 8 整除,也就是能被 8 整除的數字的最後三位。

以上是JavaScript 程式計算可被 8 整除的旋轉次數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板