TomGom hat geschrieben:ok soweit bin ich dann doch noch nich...habs mir irgendwie einfacher vorgestellt.^^
Aber danke auf jeden Fall nochmal für die nette und schnelle Hilfe.
Ich hoffe, dass sich viele meiner Probleme in Zukunft von alleine lösen werden.
Ansonsten weiß ich ja, wo man gute Antworten bekommt (*schleim,schleim*)
MfG
Keine Angst, so schwer ist das nicht.
Code: Alles auswählen
long experimental_pow(int base, short exponent)
{
long ret = base;
for(;exponent>1;exponent--) {
ret *= base;
}
return ret; //EDIT: Fast vergessen..
}
Du übergibst der Funktion die Parameter, sagen wir mal 4 und 3.
ret ist der Rückgabewert.
Den setzen wir mal auf 4, damit haben wir 4 hoch 1 schonmal geschafft.
(Daher auch die 1 in der for-Schleife)
Jetzt zur Schleife:
Wir prüfen: exp > 1 ?
3 > 1 => ja
also multiplizieren wir die basis nochmal zum Rückgabewert:
ret *= base;
4 *= 4;
=> 4*4 = 16
dann wird exponent (durch die for-Schleife) um 1 verringert.
und von vorne:
2 > 1 => ja
=>=>
ret *= base;
16 *= 4;
=> 16 * 4 = 64;
exponent um eins niedriger => 1
1 > 1 => nein
wir verlassen die Schleife und geben per
return ret
das Ergebnis zurück.
Die Funktion oben kann natürlich noch schöner und besser realisiert werden, aber als einfaches Beispiel taugts