Hallo, für ein Programm sollen die jeweiligen Harshad Zahlen, also die Zahlen die durch ihre eigene Quersumme teilbar sind (777/21 = 37) ausgegeben werden. Das Intervall legt der Benutzer durch Eingabe fest. Wir sind das im Unterricht teilweise zusammen durchgegangen und ich habe eine paar Lösungsansätze gleich in Notepad getippt.
Jetzt steht ich vor dem Problem, dass ich die while-Schleife vom Sinn her nicht verstehe. Wie kann die Quersumme= Quersumme + etwas sein? Genauso wie Zahl = Zahl/10.
Ich überlege schon eine ganze Weile und komme nicht drauf, abgesehen davon dass das Programm auch nicht richtig funktioniert wie es sollte. Es kompiliert zwar aber es wird z.B. wenn man einen Intervall von 20 bis 50 eingibt ausgegeben: 20 ist eine Harshad Zahl, 22 ist eine Harshad Zahl, ist keine Harshad Zahl...+ 27* ist keine Harshad Zahl..
Jetzt steht ich vor dem Problem, dass ich die while-Schleife vom Sinn her nicht verstehe. Wie kann die Quersumme= Quersumme + etwas sein? Genauso wie Zahl = Zahl/10.
Ich überlege schon eine ganze Weile und komme nicht drauf, abgesehen davon dass das Programm auch nicht richtig funktioniert wie es sollte. Es kompiliert zwar aber es wird z.B. wenn man einen Intervall von 20 bis 50 eingibt ausgegeben: 20 ist eine Harshad Zahl, 22 ist eine Harshad Zahl, ist keine Harshad Zahl...+ 27* ist keine Harshad Zahl..
Code:
public class HarshardZahlen4 {
public static void main ( String[] args) {
int obergrenze=0;
int untergrenze=0;
int lsg=0;
int quersumme=0;
int zahl;
System.out.println("Geben Sie eine Untergrenze ein");
untergrenze = Input.readInt();
System.out.println("Geben Sie eine Obergrenze ein");
obergrenze = Input.readInt();
if (obergrenze>0 && untergrenze>0 && untergrenze<obergrenze) {
for (int i = untergrenze; i <= obergrenze; i++) {
zahl = i;
while (zahl>0) {
quersumme = quersumme + (zahl % 10);
zahl = zahl / 10;
}
if ((i % quersumme) == 0) {
System.out.print(i + ", ");
System.out.print("ist/sind HarshardZahl/en");
}
else {
System.out.print("Geben Sie richtige Zahlen ein");
}
}
}
}
}