K
karllson
Gast
Hey Leute, erstmal vorweg: Cooles Forum.
Danke für die Möglichkeit mein geistigen Unfug mit eurer Hilfe zu Ordnen.
Ich bin Anfänger in Sachen Java und habe jetzt eine Aufgabe in der UNI, an der ich an nem gewissen Punkt scheitere!
Aufgabe ist:
So nun bin ich soweit:
Was macht das Skript bis dato? - In erster Linie laufen ohne Fehler. Darüber hinaus fragt es den User nach der Unteren und der Oberen Grenze und Berechnet für alle dazwischen liegenden Zahlen die Summe ihrer (Dezimalziffern zum Quadrat).
Wie ich finde, schonmal nicht schlecht. Ich sitz jetzt nur aufm Schlauch, weil ich nicht weiß, wie ich es hinbekomme, dass falls die Summe nicht 1 (also fröhlich) oder 4(traurig) ist, das Skript eben diese Summe wieder kontrolliert - solange bis 1 oder 4 in der Summe rauskommt.
Muss man hier mit arrays arbeiten? War es bis hier in Ordnung, oder vielleicht viel zu kompliziert?
Bin um jede Hilfe dankbar. Danke für das Lesen!
gruß karllson
Danke für die Möglichkeit mein geistigen Unfug mit eurer Hilfe zu Ordnen.
Ich bin Anfänger in Sachen Java und habe jetzt eine Aufgabe in der UNI, an der ich an nem gewissen Punkt scheitere!
Aufgabe ist:
Pflichtaufgabe 28: Die Dezimalziffern einer natürlichen Zahl n, n ≥ 1, werden einzeln
quadriert und addiert. Anschließend wird mit der entstandenen Summe genauso verfahren.
Die Ausgangszahl n heißt fröhlich, wenn man bei diesem Vorgehen schließlich auf die Zahl
1 stößt, sonst traurig. Beispielsweise ist 7 eine fröhliche Zahl:
7" = 49, 49 = 4" + 9" = 97,... bis irgendwann = 1
Schreiben Sie ein Java-Programm, das alle fröhlichen Zahlen zwischen einer Unter- und
einer Obergrenze berechnet und die zugehörigen Folgen ausgibt
So nun bin ich soweit:
Code:
import java.io.*;
public class test {
public static void main( String[] args ) {
try {
System.out.println( "Bitte untere Grenze eingeben:" );
BufferedReader in = new BufferedReader(new InputStreamReader( System.in ) );
String eingabe = in.readLine();
int unteregrenze = Integer.parseInt(eingabe);
System.out.println( "Bitte obere Grenze eingeben:" );
BufferedReader in2 = new BufferedReader(new InputStreamReader( System.in ) );
String eingabe2 = in.readLine();
int oberegrenze = Integer.parseInt(eingabe2);
int startwert = unteregrenze;
while(startwert >= unteregrenze && startwert <= oberegrenze){
startwert = ++startwert;
int zwischenzahlen = startwert-1;
if(zwischenzahlen <= 9){
int ergebniskleinerzehn = zwischenzahlen*zwischenzahlen;
System.out.println(zwischenzahlen);
}
if(zwischenzahlen <=99 && zwischenzahlen >=10){
int ersteziffer = (zwischenzahlen/10);
int zweiteziffer = (zwischenzahlen%10);
int ergebniskleinerhundert = (ersteziffer*ersteziffer)+(zweiteziffer*zweiteziffer);
System.out.println(ergebniskleinerhundert);
}
if(zwischenzahlen <=999 && zwischenzahlen >=100){
int ersteziffer1 = (zwischenzahlen/100);
int zweiteziffer1 = ((zwischenzahlen-(ersteziffer1*100)) / 10);
int dritteziffer = (zwischenzahlen-(ersteziffer1*100)-(zweiteziffer1*10));
int ergebniskleinertausend = (ersteziffer1*ersteziffer1)+(zweiteziffer1*zweiteziffer1)+(dritteziffer*dritteziffer);
System.out.println(ergebniskleinertausend);
}
}
}
catch( IOException ex ) {
System.out.println( ex.getMessage() );
}
}
}
Was macht das Skript bis dato? - In erster Linie laufen ohne Fehler. Darüber hinaus fragt es den User nach der Unteren und der Oberen Grenze und Berechnet für alle dazwischen liegenden Zahlen die Summe ihrer (Dezimalziffern zum Quadrat).
Wie ich finde, schonmal nicht schlecht. Ich sitz jetzt nur aufm Schlauch, weil ich nicht weiß, wie ich es hinbekomme, dass falls die Summe nicht 1 (also fröhlich) oder 4(traurig) ist, das Skript eben diese Summe wieder kontrolliert - solange bis 1 oder 4 in der Summe rauskommt.
Muss man hier mit arrays arbeiten? War es bis hier in Ordnung, oder vielleicht viel zu kompliziert?
Bin um jede Hilfe dankbar. Danke für das Lesen!
gruß karllson