Supportnet / Forum / Anwendungen(Java,C++...)
Algorithmus zum Potenzberechnen
Frage
Hallo,
ich möchte gerne einen Algorithmus zum berechnen von Potenzen schreiben. Bei Javascript gibt es dafür die Funktion:
Math.pow(x,y)
Gesprochen also x hoch y. Beispiel: 2 hoch 3 = 8.
Jetzt möchte ich einen Algorithmus schreiben, um diese Tätigkeit in einer (oder auch 2) Schleifen auszuführen.
Ich komme auf nichts sinniges. Habe sowas aber auch noch nicht oft gemacht. Vielleicht kann mir jemand, der Spaß an sowas hat einen Vorschlag posten.
Antwort 1 von Rangoo
a hoch b ist definiert durch b-maliges Malnehmen von a.
Bspw. 2 hoch 5 = 2 * 2 * 2 * 2 * 2
Einfachster Java-Code dafür wäre
Bspw. 2 hoch 5 = 2 * 2 * 2 * 2 * 2
Einfachster Java-Code dafür wäre
int a = 2;
int b = 5;
int c = 1;
while (b-- > 0)
c = c * a;Antwort 2 von Kreavis
int a = 2;
int b = 5;
int c = 1;
while (b-- > 0)
c = c * a;
hmm.. damit kann ich jetzt nicht viel anfangen.dabei wird "c" ja jedes mal
neu überschrieben, oder?
int b = 5;
int c = 1;
while (b-- > 0)
c = c * a;
hmm.. damit kann ich jetzt nicht viel anfangen.dabei wird "c" ja jedes mal
neu überschrieben, oder?
Antwort 3 von Bussard
hallo
das c wird deshalb überschrieben:
well es als ergebnis immerwieder in die formel eingebracht wird
also
a ist die basis vorbestimmt mit 2
b der exponent vorbestimmt durch 5
c ist das ergebnis, vorgeladen mit 1
1 durchlauf
c*2=2...wird unter c gespeichert
2 durchlauf
c*2=4...wird unter c gespeichert
3 durchlauf
c*2=8...wird unter c gespeichert
4 durchlauf
c*2=16...wird unter c gespeichert
5 durchlauf
c*2 =32...wird unter c gespeichert
der vorgegeben wert b wurde erreicht
das ergebnis ist 32
ich hoffe es half dir weiter
LG buzz
das c wird deshalb überschrieben:
well es als ergebnis immerwieder in die formel eingebracht wird
also
a ist die basis vorbestimmt mit 2
b der exponent vorbestimmt durch 5
c ist das ergebnis, vorgeladen mit 1
1 durchlauf
c*2=2...wird unter c gespeichert
2 durchlauf
c*2=4...wird unter c gespeichert
3 durchlauf
c*2=8...wird unter c gespeichert
4 durchlauf
c*2=16...wird unter c gespeichert
5 durchlauf
c*2 =32...wird unter c gespeichert
der vorgegeben wert b wurde erreicht
das ergebnis ist 32
ich hoffe es half dir weiter
LG buzz

