Matroids Matheplanet Forum Index
Moderiert von matroid
Informatik » Algorithmen / Datenstrukturen » Pseudocode zur Berechnung von a^n
Autor
Universität/Hochschule Pseudocode zur Berechnung von a^n
mp1234
Neu Letzter Besuch: im letzten Quartal
Dabei seit: 09.08.2022
Mitteilungen: 1
  Themenstart: 2022-08-09

Hi Leute, Ich habe ein Problem ein Code zu analysieren, hoffe ihr könnt mir helfen. Code lautet: int func (int a, int n) { if (n == 0) return 1; int tmp = func (a, n/2); if ( n% 2 == 0) { return tmp* tmp; } else { return tmp * tmp * a } } die soll a^n berechnen. Mir ist klar, dass es um rekursive Funktion geht. Aber ich weiß nicht was man bei der Berechnung in tmp einsetzen. z.B. wenn man a = 2 und n =2 wählt, tmp ist gleich func( a, 1). Wie geht das weiter?


   Profil
Folgende Antworten hat der Fragesteller vermutlich noch nicht gesehen.
Er/sie war noch nicht wieder auf dem Matheplaneten
DerEinfaeltige
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 11.02.2015
Mitteilungen: 3171
  Beitrag No.1, eingetragen 2022-08-10

Machen wir es interessanter und berechnen $2^3$. $a=2, n=3$ func(2, 3): if (n == 0) => false => Weiter im Code tmp = func(2, 3/2) = func(2, 1) => Berechne zunächst dieses ... tmp = 2 if (n % 2 == 0) => false else return tmp * tmp * a = 2 * 2 * 2 = 8 func(2, 1): if (n == 0) => false => Weiter im Code tmp = func (2, 1/2) = func(2, 0) => Berechne zunächst dieses ... tmp = 1 if (n % 2 == 0) => false else return tmp * tmp * a = 1 * 1 * 2 = 2 func(2, 0): if (n == 0) => true => Rekursionsanker erreicht => return 1


   Profil

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2022 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]