Heim  >  Artikel  >  Backend-Entwicklung  >  Teilbarkeit von Wiederholungseinheiten (mit C++)

Teilbarkeit von Wiederholungseinheiten (mit C++)

王林
王林nach vorne
2023-08-26 22:37:121415Durchsuche

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
  • 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;
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen