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.
Hallo liebe freunde,
ich bin neu in Java und würde mich über jede hilfreiche antwort freuen.
Mein problem sieht folgender maßen aus:
ich habe ein programm zum üben geschrieben, welches das collatz-problem verdeutlicht.
Nun möchte ich aber auch, dass man mir anzeigt wie viele rechenschritte der computer gemacht hat.
Vielen dank euch im vorraus
Java:
//Collatz-Problem
import javax.swing.JOptionPane;
public class Aufgabe2 {
public static void main( String[] args) {
//Variablendeklaration (collatzSchritt (int n)) + Eingabe der Variablen "n"
int n = Integer.parseInt(JOptionPane.showInputDialog("Geben sie eine Zahl ( <= 0) ein: "));
//Teil a Implementiereung des gegebenen Algorithmus´
while ( n > 1) {
if ( n % 2 == 0)
n = n / 2;
else
n = 3 * n + 1;
System.out.println(n);
}
}
}
ich verstehe nicht ganz was du meinst.
letztendlich möchte ich das erreichen:
Eingabe n = 3; 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1; Ausgabe: 7 Iterationen.
deklariere vor der Schleife eine Variable und erhöhe sie einfach in jedem Schleifendurchgang um 1.
Dann kannst du dir nach der Schleife diese Variable ausgeben lassen und weißt, wie viele Rechenvorgänge nötig waren..
ich stehe mit meinem Programm vor dem selben Problem.
Mein programm berechnet wohl alles richtig, denn das Ergebnis ist immer 1.
Er soll aber nicht nur die 1 ausgeben sondern auch die einzelne Zwischenergebnisse.
Kann mir jmd eine Hilfestellung dazu geben?
Java:
import inout.*;
public class Collatz1
{
public static void main (String args[])
{
int n;
System.out.println("bitte geben Sie eine Zahl ein");
n = Console.readInt();
while (n != 1)
{
if (n % 2 == 0)
n = n / 2;
else
n = 3 * n + 1;
}
System.out.println( n );
}
}
Was willst du denn noch mehr als "n" ausgeben ? Es gibt ja sonst nichts zum ausgeben
Edit: Habe gerade gesehen, das println muss dann halt in die Schleife rein. Bitte richtig bzw. besser einrücken dann sieht man es auf den ersten Blick.
import inout.*;
public class Collatz1 {
public static void main(String args[]) {
int n;
System.out.println("bitte geben Sie eine Zahl ein");
n = Console.readInt();
while (n != 1) {
if (n % 2 == 0) {
n = n / 2;
} else {
n = 3 * n + 1;
}
System.out.print(n+"->");
}
}
}
import inout.*;
public class Collatz1 {
public static void main(String args[]) {
int n;
System.out.println("bitte geben Sie eine Zahl ein");
n = Console.readInt();
while (n != 1) {
if (n % 2 == 0) {
n = n / 2;
} else {
n = 3 * n + 1;
}
System.out.print(n+"->");
}
}
}
import inout.*;
public class Collatz1 {
public static void main(String args[]) {
int n;
System.out.println("bitte geben Sie eine Zahl ein");
n = Console.readInt();
System.out.println(n);
while (n != 1) {
if (n % 2 == 0) {
n = n / 2;
} else {
n = 3 * n + 1;
}
System.out.print("->"+n);
}
}
}