Rumah > hujung hadapan web > tutorial js > Program JavaScript untuk mengira bilangan putaran dibahagikan dengan 8

Program JavaScript untuk mengira bilangan putaran dibahagikan dengan 8

PHPz
Lepaskan: 2023-09-03 10:05:08
ke hadapan
1345 orang telah melayarinya

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

Pernyataan Masalah - Kami diberi nombor. Kita perlu memutarkan nombor ini dan perlu mencari jumlah bilangan putaran yang boleh dibahagikan dengan 8.

Di sini kita akan mempelajari dua cara berbeza untuk mengira bilangan putaran boleh dibahagikan dengan 8.

Putar nombor dan semak sama ada putaran boleh dibahagi dengan 8

Kaedah pertama ialah memutar nombor dan dapatkan setiap putaran yang mungkin satu demi satu. Juga, semak sama ada putaran boleh dibahagikan dengan 8. Jika ya, tambah 1 pada kiraan.

Tatabahasa

Pengguna boleh mengikut sintaks di bawah untuk mengira bilangan putaran dibahagikan dengan 8 dengan nombor berputar.

for ( ) {
   str = lastDigit + str.substring(0, str.length - 1);
   let num = parseInt(str);
   if (num % 8 == 0) {
      count++;
   }
}
Salin selepas log masuk

Dalam sintaks di atas, kita mendapat digit terakhir rentetan nombor dan menambahkannya pada permulaan rentetan untuk memutar nombor.

Algoritma

  • Langkah 1 - Mulakan pembolehubah kiraan kepada 0, bermakna kiraan awal ialah sifar.

  • Langkah 2 - Gunakan gelung for untuk mengulangi rentetan nombor dan jadikan jumlah putaran sama dengan panjang rentetan nombor.

  • Langkah 3 - Dalam gelung for, dapatkan digit terakhir rentetan nombor. Selain itu, dapatkan subrentetan yang mengandungi digit n-1 pertama.

  • Langkah 4 - Tambahkan nombor terakhir pada permulaan subrentetan untuk memutar rentetan nombor.

  • Langkah 5 - Ekstrak nombor daripada rentetan menggunakan kaedah parseInt().

  • Langkah 6 - Periksa sama ada putaran boleh dibahagi dengan 8. Jika ya, tambahkan kiraan sebanyak 1.

  • Langkah 7 - Setelah kita menyemak semua putaran menggunakan gelung for, kembalikan nilai kiraan.

Contoh 1

Dalam contoh di bawah, fungsi rotationsDivisibleBy8() menerima nombor sebagai hujah dan mengembalikan jumlah bilangan putaran yang boleh dibahagikan dengan 8. Selain itu, kami mula-mula menukar nombor kepada rentetan menggunakan kaedah toString() dan kemudian melaksanakan algoritma di atas untuk mengira bilangan putaran boleh dibahagikan dengan 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>
Salin selepas log masuk

Periksa sama ada nombor tiga digit boleh dibahagi dengan 8

Jika tiga digit terakhir mana-mana nombor boleh dibahagi dengan 8, kita boleh mengatakan bahawa nombor keseluruhan boleh dibahagi dengan 8. Jadi, di sini kita boleh mengambil sepasang tiga nombor berturut-turut dan menyemak sama ada pasangan itu boleh dibahagi dengan 8. Jika ya, ini bermakna putaran yang mengandungi nombor tiga digit pada penghujungnya boleh dibahagi dengan 8.

Tatabahasa

Pengguna boleh mengikut sintaks di bawah untuk mengira bilangan putaran dibahagikan dengan 8.

for ( ) {
   let pairOf3 = numStr.substring(i, i + 3);
   if (pairOf3 % 8 == 0) {
      count++;
   }
}
Salin selepas log masuk

Dalam sintaks di atas, kami menggunakan kaedah subrentetan() untuk mendapatkan pasangan tiga digit.

Algoritma

  • Langkah 1 - Tukar nombor kepada rentetan menggunakan kaedah toString().

  • Langkah 2 - Jika panjang nombor itu sama dengan 1, kembalikan 1 jika nombor itu boleh dibahagi dengan 8 jika tidak, kembalikan 0.

  • Langkah 3 - Jika panjang nombor itu bersamaan dengan 2, semak bilangan putaran boleh dibahagikan dengan 8 daripada kemungkinan putaran dan kiraan pulangan.

  • Langkah 4 - Untuk nombor dengan lebih daripada 3 digit, gunakan kaedah substring() dan ekstrak pasangan tiga digit berturut-turut. Selepas itu, periksa sama ada pasangan boleh dibahagikan dengan 8 dan naikkan nilai kiraan.

  • Langkah 5 - Juga, semak pasangan yang mengandungi dua digit terakhir dan digit pertama, digit terakhir dan dua digit pertama, dan naikkan nilai Kiraan dengan sewajarnya.

Contoh 2

Dalam contoh di bawah, kami menggunakan kaedah gelung dan subrentetan() untuk mendapatkan pasangan n-2 nombor tiga digit dan semak sama ada ia boleh dibahagi dengan 8. Dalam output, pengguna dapat melihat bahawa nombor yang diberikan mengandungi sejumlah 5 putaran yang boleh dibahagikan dengan 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>
Salin selepas log masuk

Pengguna mempelajari dua cara berbeza untuk mengira jumlah pusingan boleh dibahagikan dengan 8. Dalam kaedah pertama, kami mengambil semua putaran yang mungkin dan semak sama ada ia boleh dibahagikan dengan 8. Dalam kaedah kedua, kami menggunakan sifat nombor yang menjadikannya boleh dibahagi dengan 8, iaitu tiga digit terakhir nombor yang boleh dibahagi dengan 8.

Atas ialah kandungan terperinci Program JavaScript untuk mengira bilangan putaran dibahagikan dengan 8. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan