Potenz berechnen



  • Guten Tag!

    Ich versuche mich gerade an der Potenzberechnung, aber bekomme es einfach nicht hin. Ich weiß, das die Basis so oft mit sich selbst multipliziert werden muss, so groß der Exponent ist:

    #include <stdio.h>
    #include <conio.h>
    
    int Potenz(int basis, int exponent);
    
    int main()
    {
    	int basis;
    	int exponent;
    	scanf("%d,%d", &basis, &exponent);
    	printf("%d", Potenz(basis,exponent));
    
    	return 0;
    }
    
    int Potenz(int basis, int exponent)
    {
    	int ergebnis = 1;
    
    	for(int i = 0; i <= exponent; i++)
    	{
    		ergebnis = basis * i;
    	}
    
    	return ergebnis;
    }
    

  • Mod

    for(int i = 0; i <= exponent; i++)
        {
            ergebnis = basis * i;
        }
    

    Ich weiß, das die Basis so oft mit sich selbst multipliziert werden muss, so groß der Exponent ist:

    Das passt nicht zusammen.

    Ich erkläre dir mal in Worten, was dein Code gerade macht: Es wird exponent-Mal die Schleife durchlaufen. Dann wird das Ergebnis von basis*(nummer des schleifendurchlaufs) berechnet. Dabei wird das Ergebnis des vorherigen Durchlaufs verworfen. Somit hast du am Ende als Ergebnis basis*(exponent-1), welches das Ergebnis des letzten Durchlaufs ist.



  • MichaelE schrieb:

    Ich weiß, das die Basis so oft mit sich selbst multipliziert werden muss, so groß der Exponent ist

    Du hast es gesagt: mit sich selbst und nicht mit dem Exponenten.

    int ergebnis = 1;
    
        for(int i = 0; i < exponent; i++)
        {
            ergebnis *= basis;  // ergebnis = basis * ergebnis;
        }
    


  • Danke für die Erklärung 🙂
    Jetzt funktioniert es natürlich, nochmals danke an euch beide!


Anmelden zum Antworten