Rumah >pembangunan bahagian belakang >C++ >Mengulang pembahagian unit (menggunakan C++)

Mengulang pembahagian unit (menggunakan C++)

王林
王林ke hadapan
2023-08-26 22:37:121453semak imbas

Mengulang pembahagian unit (menggunakan C++)

Dalam artikel ini, kita akan membincangkan mencari bilangan unit berulang yang boleh dibahagi dengan N. Unit berulang ialah bilangan ulangan 1, biarkan R(k) ialah unit berulang, dengan k ialah panjang 1. Sebagai contoh, R(4) = 1111. Jadi kita perlu mencari bilangan minimum k yang R(k) boleh dibahagikan dengan N seperti -

Input : N = 13
Output : k = 6
Explanation : R(6) i.e 111111 is divisible by 13.

Input : N = 31
Output : k = 15

Cara untuk mencari penyelesaian

Anda boleh menyelesaikan masalah ini dengan menyemak setiap nilai k bermula dari 1 di mana R (k) Adakah ia boleh dibahagikan dengan N? Tetapi menggunakan penyelesaian ini kita tidak akan dapat menentukan sama ada N boleh dibahagikan dengan sebarang nilai R(k). Ini akan menjadikan program terlalu rumit dan mungkin tidak berfungsi.

Cara yang berkesan untuk menyelesaikan program ini ialah,

  • Semak sama ada N agak prima dengan 10.
  • Jika tidak, maka R(k) tidak boleh dibahagikan dengan N untuk sebarang nilai k.
  • Jika ya, maka bagi setiap unit berulang R(1), R(2), R(3)...dll., hitung baki pembahagian R(i) dengan N, jadi terdapat n baki.
  • Cari baki R(i) dan R(j) yang sama, dengan R(i) dan R(j) ialah dua unit berulang supaya R(i) - R(j) boleh dibahagikan dengan N.
  • aR Perbezaan antara (i) dan R(j) akan mendarabkan unit berulang dengan beberapa kuasa 10, tetapi 10 dan N adalah relatif perdana, jadi R(k) akan boleh dibahagikan dengan N.

Contoh

#include <bits/stdc++.h>
using namespace std;

int main() {
   int N = 31;
   int k = 1;
   // checking if N is coprime with 10.
   if (N % 2 == 0 || N % 5 == 0){
      k = 0;
   } else {
      int r = 1;
      int power = 1;
      // check until the remainder is divisible by N.
      while (r % N != 0) {
         k++;
         power = power * 10 % N;
         r = (r + power) % N;
      }
   }
   cout << "Value for k : "<< k;
   return 0;
}

Output

Value for k : 15

Kesimpulan

Dalam artikel ini, kita membincangkan mencari nilai k bagi R(k), di mana R(k) ialah unit berulang yang boleh dibahagikan dengan N tertentu. Kami membincangkan pendekatan optimistik untuk mencari nilai k. Kami juga membincangkan kod C++ untuk menyelesaikan masalah ini. Anda boleh menulis kod ini dalam mana-mana bahasa lain seperti Java, C, Python, dll. Kami berharap artikel ini dapat membantu anda.

Atas ialah kandungan terperinci Mengulang pembahagian unit (menggunakan C++). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam