Heim > Backend-Entwicklung > C++ > C++ repräsentiert die Anzahl der Potenzen einer Zahl

C++ repräsentiert die Anzahl der Potenzen einer Zahl

WBOY
Freigeben: 2023-08-27 09:05:13
nach vorne
740 Leute haben es durchsucht

C++ repräsentiert die Anzahl der Potenzen einer Zahl

Diskutieren Sie das Problem, eine Zahl auszudrücken, indem Sie sie mit einer anderen Zahl potenzieren. Gegeben sind zwei Zahlen, x und y. Wir müssen beurteilen, ob y in Potenzen von x ausgedrückt werden kann, wobei jede Potenz einer Gleichung −

Input: x = 4, y = 11
Output: true
Explanation: 4^2 - 4^1 - 4^0 = 11 Hence y can be represented in the power of x.

Input: x = 2, y = 19
Output: true
Explanation: 2^4 + 2^1 + 2^0 =19 Hence y can be represented in the power of x.

Input: x = 3, y = 14
Output: false
Explanation: 14 can be represented as 3^2 + 3^1 + 3^0 + 3^0 but we cannot use one term of power of x twice.
Nach dem Login kopieren

wobei c0, c1, c2 -1, 0, +1 sein kann, was angibt, ob (-1) subtrahiert werden soll )-Term, fügen Sie den (+1)-Term hinzu oder schließen Sie den (0)-Term aus −

c0(x^0) + c1(x^1) + c2(x^2) + c3(x^3) + … = y ….(1),
Nach dem Login kopieren

Nehmen wir x als gemeinsamen Faktor,

c1(x^1) + c2(x^2) + c3(x^3) + … = y - c0,
Nach dem Login kopieren

Aus den Gleichungen (1) und (2) können wir die Zahlen erneut in der Reihenfolge darstellen Damit eine Lösung existiert, muss (y – Ci) durch x teilbar sein und Ci kann nur -1, 0 und +1 enthalten.

Abschließend müssen wir also bis y>0 prüfen, ob es [(y-1) % x == 0] oder [(y) % x == 0] oder [(y+1) % x == erfüllt 0] oder ob es keine Lösung gibt.

Beispiel

c1(x^0) + c2(x^1) + c3(x^2) + … = (y - c0)/x ….(2),
Nach dem Login kopieren

Ausgabe

#include <bits/stdc++.h>
using namespace std;
int main(){
   int x = 2, y = 19;
   // checking y divisibility till y>0
   while (y>0) {
      // If y-1 is divisible by x.
      if ((y - 1) % x == 0)
         y = (y - 1) / x;
        // If y is divisible by x.
      else if (y % x == 0)
         y = y / x;
         // If y+1 is divisible by x.
      else if ((y + 1) % x == 0)
         y = (y + 1) / x;
         // If no condition satisfies means
         // y cannot be represented in terms of power of x.
      else
         break;
   }
   if(y==0)
      cout<<"y can be represented in terms of the power of x.";
   else
      cout<<"y cannot be represented in terms of the power of x.";
   return 0;
}
Nach dem Login kopieren

Fazit

In diesem Tutorial haben wir besprochen, wie man prüft, ob die Darstellung einer Zahl als Potenz einer anderen Zahl ausgedrückt werden kann. Wir haben einen einfachen Weg besprochen, dieses Problem zu lösen, indem wir prüfen, ob die aktuelle Zahl, die vorherige Zahl und die nächste Zahl durch y teilbar sind.

Wir haben auch ein C++-Programm zur Lösung dieses Problems besprochen. Wir können Programmiersprachen wie C, Java, Python usw. verwenden, um es zu implementieren. Ich hoffe, dieses Tutorial ist hilfreich für Sie.

Das obige ist der detaillierte Inhalt vonC++ repräsentiert die Anzahl der Potenzen einer Zahl. 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