A
AnfängerinIm1Semester
Gast
[Edit by Beni: zu den "Aufgaben" verschoben]
Hallo beieinander,
Ich traue mich nach den Ermahnungen im Anfängerbereich gar nicht mehr so richtig was reinzuschreiben
Aber vielleicht seid ihr ja so lieb und könnt mir einen Tip geben. Es geht um Folgendes:
Ich soll ein Programm schreiben, das eine EIngabezahl (Hier n) einliest und dann alle darunter liegenden "fröhlichen Zahlen" ausgeben soll. n soll , falls fröhlich, auch ausgegeben werden.
Mein Programm gibt aber alle Zahlen aus und ich hab mitlerweile den Überblick verloren.
Sieht jemand von euch meinen Fehler?
Eine fröhliche Zahl erkennt man daran, dass die quadrierung der Einzelziffern einer zahl....wenn man immer so weitermacht....mit einer 1 endet:
19 -> 1² + 9² = 82
-> 8² + 2² = 68
-> 6² + 8² = 100
-> 1² =1
Übrigens eine "traurige zahl" endet immer mit der Folge 4 16 37 58 89 145 42 20 4.
_________________________________________________________________
:bahnhof:
Hallo beieinander,
Ich traue mich nach den Ermahnungen im Anfängerbereich gar nicht mehr so richtig was reinzuschreiben
Aber vielleicht seid ihr ja so lieb und könnt mir einen Tip geben. Es geht um Folgendes:
Ich soll ein Programm schreiben, das eine EIngabezahl (Hier n) einliest und dann alle darunter liegenden "fröhlichen Zahlen" ausgeben soll. n soll , falls fröhlich, auch ausgegeben werden.
Mein Programm gibt aber alle Zahlen aus und ich hab mitlerweile den Überblick verloren.
Sieht jemand von euch meinen Fehler?
Eine fröhliche Zahl erkennt man daran, dass die quadrierung der Einzelziffern einer zahl....wenn man immer so weitermacht....mit einer 1 endet:
19 -> 1² + 9² = 82
-> 8² + 2² = 68
-> 6² + 8² = 100
-> 1² =1
Übrigens eine "traurige zahl" endet immer mit der Folge 4 16 37 58 89 145 42 20 4.
_________________________________________________________________
Code:
class HappyNumbers
{
public static void main(String[] args)
{
int n = Integer.parseInt(args[0])
int zehner = 0;
int einer = 0;
int getEiner;
int i;
int s=0;
int zs;
for (i=1; i<=n; i++)
{
zs= i;
while (s !=1 && s!=4)
{
while (zs>=10)
{
getEiner =zs%10;
einer = einer + (getEiner*getEiner);
zs = zs/10;
}
zehner = zs*zs;
s= zehner + einer;
zs=s;
}
if (s==1)
System.out.print(i + " ");
else
System.out.print("");
}
}
}
_________________________________________________________________