Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe eine Aufgabe von der Uni, die ich irgendwie nicht lösen kann. Ich habe eigene Ideen gehabt aber komme einfach nicht zum Schluss. Man soll alle Zweierpotenzen bis 2^10 ausgeben lassen.
Hier ist das was ich bisher habe:
//Lassen Sie auf der Konsole alle Zweierpotenzen bis 2^10 ausgeben.
Also 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024
Java:
public class B_Zweierpotenzen {
public static void main (String [] args) {
int basis = 2;
int exponent=1;
for (exponent = 1; exponent<=10; exponent++){
basis = basis * 2;
}
System.out.println (basis);
}
}
Wenn ich deinen Code ausführen (und die Ausgabe innerhalb der Schleife mache) dann kommt das gewünschte Ergebnis raus
Kann es vielleicht sein das dein Ausgabefenster zuklein ist und du nur raufscrollen musst?
Vermutlich hat er die Ausgabe nach dem 'basis=basis*2' gemacht. Dann sollte es von 4 bis 2048 gehen.
Also entweder einen anderen Startwert für 'basis' wählen, oder die Ausgabe an eine andere Stelle in der Schleife verschieben (so viele Möglichkeiten gibts da ja nicht )
Wenn ich deinen Code ausführen (und die Ausgabe innerhalb der Schleife mache) dann kommt das gewünschte Ergebnis raus
Kann es vielleicht sein das dein Ausgabefenster zuklein ist und du nur raufscrollen musst?
public static int zweiHochN(int n) {
int enn = 0;
if (n==0) {
System.out.println(" "+1);
return 1;
} else {
enn = 2*zweiHochN(n-1);
System.out.println(" "+enn);
return enn;
}
}
Vermutlich hat er die Ausgabe nach dem 'basis=basis*2' gemacht. Dann sollte es von 4 bis 2048 gehen.
Also entweder einen anderen Startwert für 'basis' wählen, oder die Ausgabe an eine andere Stelle in der Schleife verschieben (so viele Möglichkeiten gibts da ja nicht )
Danke an alle. Ich habe jetzt einfach am Anfang die "int basis = 1" gesetzt. Jetzt passt alles
Das einzige Problem was ich jetzt habe ist, ich verstehe nicht ganz, wieso die "basis" gleich 1 gesetzt werden muss. Die Basis ist doch bei einer Zweierpotenz immer 2 und der Exponent beginnt mit der 1 und geht schließlich bis 10. Ich bin verwirrt.
Die Schleife berechnet dir für den aktuellen Exponenten das Ergebnis. Wie du schon sagt startet "exponent" mit dem Wert 1.
Sprich der 1.Schleifendurchlauf sollte dir als Ergebnis 2 liefern.
Wenn du aber nun schon mit "basis = 2" startest, bräuchtest du ja keine Berechnung mehr für exponent = 1 sondern müsstest nur den Wert ausgeben.
Die Schleife berechnet dir für den aktuellen Exponenten das Ergebnis. Wie du schon sagt startet "exponent" mit dem Wert 1.
Sprich der 1.Schleifendurchlauf sollte dir als Ergebnis 2 liefern.
Wenn du aber nun schon mit "basis = 2" startest, bräuchtest du ja keine Berechnung mehr für exponent = 1 sondern müsstest nur den Wert ausgeben.
Bis zu deinem letzten Satz kann ich dir folgen. Aber der Punkt ist doch, dass ich eine Zweierpotenz berechnen soll. Beudeutet das nicht, dass die "basis = 2" sein muss?
Der Klassiker um die Anwendung von Rekursion zu lernen ! Und die iterative Lösung irritiert auch @ceko1907 : es irritiert dich ja nur weil bei dir basis gar nicht basis ist. das steht ja festkodiert als 2 dort.