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...

Plisso

Mitglied
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);
		
		
		
	}
}
 
B

bygones

Gast
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 ?
 

faetzminator

Gesperrter Benutzer
Java:
public static double pow(double d, int i) {
    double v = d;
    for (int j = 1; j < i; j++) {
        v *= d;
    }
    return v;
}
 

max40

Bekanntes Mitglied
ich denke mal das Plisso nur das x^0 vergessen hat zu schreiben!
@Plisso das Beispiel funktioniert nur bei Positiven Exponenten!
 

schnosi

Mitglied
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???
 

0x7F800000

Top Contributor
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.

Neue Themen


Oben