Potenzen ohne Math.pow()

Status
Nicht offen für weitere Antworten.

Plisso

Mitglied
Hallo,
wie kann man Potenzen ohne Math.pow() berechnen?
Sitze schon länger dran und komme nicht auf die Lösung.
Wahrscheinlich ist es mal wieder ganz einfach 😉

Danke
 
Beste Antwort
Java:
	private static double sq(double x){
		return x*x;
	}
	public static double pow(double base, int exp){
		return exp==0?1:sq(pow(base,exp/2))*(exp%2==1?base:1);
	}
wenn das 50 mal gepostet wurde, kommt's in die FAQ^^ :autsch:

Die rekursion an sich funzt erstmal nur für nichtnegative exponenten. Das müsste man vollständigkeitshalber noch ein wenig wrappen...
So meine ich das nicht. Habe folgenden Code.
Ich möchte die Potenz eben nur ohne Math.pow () berechnen.

Code:
public class F {
	public static void main(String[]args) {

		double x=Double.parseDouble(args[0]);
		double N=Double.parseDouble(args[1]);
		double fak=1;
		
		double sum=0;
		
		for (int i=1; i<=N; i++) {
			fak = fak*i;
			double pot=Math.pow(x,i);
				
		sum += pot/fak;
		}
		System.out.println(sum+1);
		
		
		
	}
}
 
also statt Math.pow(2,3) willst du 2 * 2 * 2 etc schreiben...

schleife schreiben und so oft wie die potenz durchlaufen und eine variable immer um die zahl erhoehen....

oder wie ?
 
Java:
public static double pow(double d, int i) {
    double v = d;
    for (int j = 1; j < i; j++) {
        v *= d;
    }
    return v;
}
 
ich denke mal das Plisso nur das x^0 vergessen hat zu schreiben!
@Plisso das Beispiel funktioniert nur bei Positiven Exponenten!
 
Und wie macht man das ganze mit einer Rekursion? Schleife ist ja simpel, aber das Programm auf rekursiv zu ändern, ist schwieriger... bekomme es nicht hin und würde mich mal gern für die Lösung interessieren. Irgendwer einen Ansatz???
 
Java:
	private static double sq(double x){
		return x*x;
	}
	public static double pow(double base, int exp){
		return exp==0?1:sq(pow(base,exp/2))*(exp%2==1?base:1);
	}
wenn das 50 mal gepostet wurde, kommt's in die FAQ^^ :autsch:

Die rekursion an sich funzt erstmal nur für nichtnegative exponenten. Das müsste man vollständigkeitshalber noch ein wenig wrappen...
 
Beste Antwort
Status
Nicht offen für weitere Antworten.

Zurück
Oben