Heim > Backend-Entwicklung > C++ > Hauptteil

Teilbarkeit von Wiederholungseinheiten (mit C++)

王林
Freigeben: 2023-08-26 22:37:12
nach vorne
1418 Leute haben es durchsucht

Teilbarkeit von Wiederholungseinheiten (mit C++)

In diesem Artikel besprechen wir die Ermittlung der Anzahl der Wiederholungseinheiten, die durch N teilbar ist. Eine Wiederholungseinheit ist einfach die Anzahl der Wiederholungen von 1, sei R(k) die Wiederholungseinheit, wobei k die Länge von 1 ist. Zum Beispiel ist R(4) = 1111. Wir müssen also die kleinste Anzahl von k finden, für die R(k) durch N teilbar ist, wie z. Ist es durch N teilbar? Mit dieser Lösung können wir jedoch nicht bestimmen, ob N durch einen beliebigen Wert von R(k) teilbar ist. Dadurch wird das Programm zu komplex und funktioniert möglicherweise nicht einmal.

Eine effiziente Möglichkeit, dieses Programm zu lösen, ist:

Überprüfen Sie, ob N teilerfremd mit 10 ist.

Wenn nicht, dann ist R(k) für keinen Wert von k durch N teilbar.
  • Wenn ja, dann berechnen Sie für jede Wiederholungseinheit R(1), R(2), R(3) usw. den Rest der Division von R(i) durch N, sodass es n Reste gibt.
  • Finden Sie den gleichen Rest von R(i) und R(j), wobei R(i) und R(j) zwei Wiederholungseinheiten sind, sodass R(i) - R(j) durch N teilbar ist.
  • aR Die Differenz zwischen (i) und R(j) multipliziert die Wiederholungseinheit mit einer Potenz von 10, aber 10 und N sind teilerfremd, sodass R(k) durch N teilbar ist.
  • Beispiel
  • Input : N = 13
    Output : k = 6
    Explanation : R(6) i.e 111111 is divisible by 13.
    
    Input : N = 31
    Output : k = 15
    Nach dem Login kopieren
  • Ausgabe
#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;
}

Nach dem Login kopieren

Fazit

In diesem Artikel besprechen wir die Ermittlung des k-Werts von R(k), wobei R(k) eine durch ein gegebenes N teilbare Wiederholungseinheit ist. Wir haben einen optimistischen Ansatz zur Ermittlung des Werts von k diskutiert. Wir haben auch C++-Code besprochen, um dieses Problem zu lösen. Sie können diesen Code in jeder anderen Sprache wie Java, C, Python usw. schreiben. Wir hoffen, dass dieser Artikel für Sie hilfreich war.

Das obige ist der detaillierte Inhalt vonTeilbarkeit von Wiederholungseinheiten (mit C++). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage