Heim >Backend-Entwicklung >C++ >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.
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; }
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!