Potenzen

hallo :)

ich sitze an einer eigentlich einfach aufgabe aber das Ergebnis gefällt mir noch nicht so wirklich:

Aufgabe ist ein Programm zu schreiben das für n= 0 bis 32 die nte potenz von 2 ausgibt.

da stellt sich mir die frage potenzen drückt man die in java mit ^ aus? könnte man wurzel auch berechnen?

was stimmt an meiner lösung bis her nicht ?

Java:
public class ZweierPotenzen {

	
	public static void main(String[] args) {
		
		
		int a = 2;
		
		
		for (int i = 0; i<=32;i++){
			
			int ergebnis=a^i;
			
			System.out.println("Die Potenz von: "+a + "mit n= "+ i+ "beträgt:"+ ergebnis);
			
		}
	}

}
 
S

SlaterB

Gast
daran stimmt (nicht), dass du vergessen hast, 'java potenz ausrechnen' bzw. ähnliches in eine Suchmaschine einzutippen

^ findest du unter 'Bitoperatoren', als Tipp ;) bzw. hier unwichtig, nicht benötigt, in der Tat falsch
 

janus23

Mitglied
In Java gibt es für solche Berechnungen die Klasse Math.
Java:
Math.pow(2,1);
wäre demnach 2^1.

Für würzeln gibt es
Java:
Math.sqrt(4);
welches die Quadratwurzel berechnet, also in diesem Fall 2. Willst du andere Wurzeln berechnen, musst du das mit pow machen :)
Dazu sei gesagt, dass beide Funktionen double Werte erwarten.
 

Marco13

Top Contributor
2^x sollte man nicht mit pow berechnen ... IMHO. Sicher kann man das, wenn es egal ist, aber 2erpotenzen sind nur geshiftete bits.
twoPowN = (1 << n);

Wurzeln kann man dann aber (wenn man sqrt nicht will, oder im allgemeinen Fall) mit Pow berechnen:
Math.pow(x, 0.5);
ist die Quadratwurzel,
Math.pow(x, 1.0/3.0);
die dritte Wurzel (wenn ich mich nicht irre...) usw...
 

Meierhof

Mitglied
Wobei hier vielleicht auch daran zu denken wäre, die Intention der Aufgabe abseits des direkten (java.math) Weges zu suchen.
So wäre hier beispielsweise eine Schleifenkonstruktion und einfache Multiplikationsoperationen ebenfalls zielführend.
 

Landei

Top Contributor
Java:
public class ZweierPotenzen {
    public static void main(String[] args) {
        for(long n = 0, i = 1; n <= 32; n ++, i *= 2) {
            System.out.printf("2^%d = %d%n",n,i);
        }
    }
}
 

Neue Themen


Oben