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

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

WBOY
WBOYnach vorne
2023-08-27 09:05:13741Durchsuche

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.

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),

Nehmen wir x als gemeinsamen Faktor,

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

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),

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

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!

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

In Verbindung stehende Artikel

Mehr sehen