HappyNumbers - Endlosschleife

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Java-Volk.

ich brüte seit 3 Tagen über ein Problem. Ich bin an einem Punkt angelangt wo ich den Wald vor lauter Bäumen nicht mehr sehe. Ich denke, dass wäre klug sich Hilfe von Außen zu holen.


Ich soll ein Programm schreiben, welches alle Zahlen bis zur eingegebenen Zahl überprüft, ob es eine fröhliche oder traurige Zahl ist.

Leider verfängt sich das Programm bei jeder Eingabe in eine Endlosschleife.
Da ich keinen Debugger habe (und auch keine Ahnung davon), fällt es mir schwer den Fehler zu finden.

Schon mal vielen Dank an euch.


Code:
class HappyNumbers
{
	public static void main(String[] args)
	{
	
		int eingabe = Integer.parseInt(args[0]);
		int zahl = 0;
		int quad = 0;
		int summe = 0;
		
		
		for(int counter = 2; counter <= eingabe; counter++)
		{
			zahl = counter;
			
			while(summe != 1 || summe != 4)
			{
				if(zahl < 10)
					summe = zahl * zahl;
				else
				{
					summe = 0;
					while(zahl >= 10)
					{
						quad = zahl % 10;
						summe = quad * quad + summe;
						zahl = (int)(zahl / 10);
					}
					summe = zahl * zahl + summe;
				}
				zahl = summe;
			}
			if(summe == 1)
				System.out.printf("%d ist froehlich \n", counter);
			else
				System.out.printf("%d ist traurig \n", counter);
		}
	}
}
 

DocRandom

Top Contributor
.ä´hm, was verstehst Du unter einer fröhlichen bzw. einer traurigen Zahl?
Für mich sind alle Zahlen fröhlich, nur die nicht, die mir das Finanzamt vorschreibt! ;)

mfg
DocRandom
 

WieselAc

Top Contributor
Kannst du mal kurz definieren, was ein "glückliche" und was eine "falsche Zahl ist. Dann kommt man besser durch den code. Ich versuch es aber auch mal so rauszufinden :)
 
R

Roar

Gast
> while(summe != 1 || summe != 4)
soll das nich eher
> while(summe != 1 && summe != 4)
heißen? denn (summe != 1 || summe != 4) is immer true ;)
 

WieselAc

Top Contributor
stimmt ist mir auch aufgefallen und zusätzlich frag ich mich ob das richtig ist, das summe nicht wieder zurückgesetzt wird nach der Ausgabe.
 
G

Guest

Gast
Man tut folgendes mit den Zahlen:

Jede einzelne Stelle quadrieren und summieren. MIt der Neuen Zahl tut man das Gleiche:

Traurige Zahl (zB 4):

4 -> 4*4 = 16
16 -> 1*1 + 6*6 = 37
37 -> 3*3 + 7*7 = 58
58 -> 5*5 + 8*8 = 89
89 -> 8*8 + 9*9 = 145
145 -> 1*1 + 4*4 + 5*5 = 42
42 -> 4*4 + 2*2 = 20
20 -> 2*2 + 0*0 = 4

Fröhliche Zahl (zB 10)

10 -> 1*1 + 0*0 = 1
1 -> 1-> 1->


Jede Zahl kommt in einen der beiden Zyklen, entweder zur 1 oder in diesen 4 -> 4 Zyklus. danach unterscheidet man auch zwischen happy und unhappy.


Ich teste mal den Vorschlag von Roar

Danke schon mal.
 
G

Guest

Gast
Hey kuhl, ned mehr in der Endlosschleife gefangen. Danke. :D
Zu dumme, dass mit das nicht aufgefallen ist.

Na ja, leider kommen noch die falschen Ergebinsse. (Alles traurig) Vermütlich rauscht der überall durch und macht die Schleifen ned gescheit und bringt die letzte ausgabe weil da keine bedingung davor ist.

Ich suche mal weiter und euch einen großen Dank. :)
 

WieselAc

Top Contributor
EDIT: hab käse gepostet!!


ne doch nitt :)

Musst nur nach einem durchlauf summe wieder auf 0 setzten (wie oben erwähnt)
 
G

Guest

Gast
WieselAc hat gesagt.:
stimmt ist mir auch aufgefallen und zusätzlich frag ich mich ob das richtig ist, das summe nicht wieder zurückgesetzt wird nach der Ausgabe.


:D



Danke dir auch.

Jetzt kann ich erst mal Pause machen und mich registrieren. Hier gefällte es mir. ;-)
 

Graf KiZz

Mitglied
Anfangs logischerweise schon. Mit Nicht-wissen weiter helfen ist eher uneffizient.
Aber wir entwickeln uns ja alle weiter. *hoff* :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
noah1407 endlosschleife Java Basics - Anfänger-Themen 7
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
sserio Endlosschleife ja nein? Java Basics - Anfänger-Themen 13
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
B Endlosschleife Thread sauber beenden Java Basics - Anfänger-Themen 19
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
O Endlosschleife abbrechen Java Basics - Anfänger-Themen 10
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
S Interpreter-Fehler Endlosschleife zur Laufzeit aber warum? Java Basics - Anfänger-Themen 15
T Erste Schritte Endlosschleife & wozu braucht man /* und */ Java Basics - Anfänger-Themen 19
J Endlosschleife bei Try-Catch? Java Basics - Anfänger-Themen 3
S Endlosschleife - Warum? Java Basics - Anfänger-Themen 1
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
C Collatzfolge endlosschleife. Java Basics - Anfänger-Themen 4
D Array in Endlosschleife überschreibt vorherige Werte Java Basics - Anfänger-Themen 4
E Eulersche Zahl berechnen, Endlosschleife Java Basics - Anfänger-Themen 2
N Endlosschleife... Warum? Java Basics - Anfänger-Themen 12
P Kapselung Problem - Endlosschleife Java Basics - Anfänger-Themen 10
M Endlosschleife bricht durch switch ab Java Basics - Anfänger-Themen 17
D Endlosschleife und ich komme nicht raus! Java Basics - Anfänger-Themen 8
N Erste Schritte Endlosschleife und Exception Java Basics - Anfänger-Themen 5
R Endlosschleife nach InputMismatchException Java Basics - Anfänger-Themen 2
S Endlosschleife? Java Basics - Anfänger-Themen 2
T Endlosschleife Java Basics - Anfänger-Themen 2
Z Endlosschleife Java Basics - Anfänger-Themen 6
T Endlosschleife Java Basics - Anfänger-Themen 12
H Wieso ist das eine Endlosschleife? Java Basics - Anfänger-Themen 8
StupidAttack Endlosschleife, Sockets Java Basics - Anfänger-Themen 2
C ungewollte Abbrüche in einer Endlosschleife Java Basics - Anfänger-Themen 6
E komische endlosschleife Java Basics - Anfänger-Themen 6
7 Endlosschleife pausieren Java Basics - Anfänger-Themen 11
F .readLine() erzeugt endlosschleife Java Basics - Anfänger-Themen 4
R Wieso hänge ich hier in einer Endlosschleife (vermute ich zumindest)? Java Basics - Anfänger-Themen 2
F Falscheingabe abfangen - Endlosschleife Java Basics - Anfänger-Themen 5
R warum endlosschleife? Java Basics - Anfänger-Themen 7
W Fakultät, warum Endlosschleife? Java Basics - Anfänger-Themen 15
S JTable Endlosschleife Java Basics - Anfänger-Themen 5
J Aus endlosschleife kommen Java Basics - Anfänger-Themen 5
R Endlosschleife verhindert das Schließen des Fensters Java Basics - Anfänger-Themen 10
Povlsen84 Endlosschleife Java Basics - Anfänger-Themen 5
V Bubble Sort endet in Endlosschleife Java Basics - Anfänger-Themen 4
Antoras Endlosschleife Java Basics - Anfänger-Themen 8
J Wartezustand in Endlosschleife - bessere Alternativen Java Basics - Anfänger-Themen 20
H Problem beim Einlesen einer Datei (Endlosschleife ?) Java Basics - Anfänger-Themen 3
N Endlosschleife? Java Basics - Anfänger-Themen 3
V mehrere Threads starten + Endlosschleife Java Basics - Anfänger-Themen 3
I Hilfe wer findet mein Fehler in bei der Endlosschleife Java Basics - Anfänger-Themen 7
G Sound/Endlosschleife/Abbruchproblem Java Basics - Anfänger-Themen 3
0 Endlosschleife beim Integer Array mischen? Java Basics - Anfänger-Themen 3
M OutputStream funktioniert nur in Endlosschleife ? Java Basics - Anfänger-Themen 4
G Endlosschleife, aber warum? Java Basics - Anfänger-Themen 12
G Endlosschleife beenden Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben