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 整除的旋转次数的详细内容,更多请关注双恒网络其它相关文章!

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
9.本站默认解压密码为:www.sudo1.com
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

云资源网 » JavaScript 程序计算可被 8 整除的旋转次数

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
你们有qq群吗怎么加入?
当然有的,如果你是帝国cms、易优cms、和pbootcms系统的爱好者你可以加入我们的QQ千人交流群https://www.sudo1.com/page-qun.html。
  • 会员数(个)
  • 12334资源数(个)
  •        
  • 资源(G)
  •        
  • 今日下载
  • 1406稳定运行(天)

提供最优质的资源集合

立即查看 了解详情