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
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,
#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; }
Value for k : 15
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!