Quersumme ganzzahlig teilen problem

xyZman

Bekanntes Mitglied
Hallo Community !
Hab folgendes Problem.
Ich möchte in meine For Schleife eine Variable einbinden
Variable Zahl
Die For Schleife läuft also von 1 bis Zahl.
Doch er meckert, wieso braucht er boolean ?
SQL:
found   : int
required: boolean
        for ( i = 1; Zahl; i++) {
-----------------------------
Problem erledigt siehe unten
-----------------------------
gruß Flo
 
Zuletzt bearbeitet:
der zeite parameter muss ein boolscher ausruck sein, der angibt ob die schleife noch laufen soll

for(int i = 0 ; i < Zahl; i++){
zb...
 
Ich glaub ich hab einfach " == " vergessen..
SQL:
found   : int
required: BOOLEAN
        FOR ( i = 1; ==Zahl; i++) {
 
Und das "i":

Java:
for(int i = 0 ; i <= Zahl; i++){

Und: nimm "<=" statt "==" sonst wird die Schleife nicht ausgeführt.
 
Also meine Aufgabe ist ,dass ich eine Zahl k eingebe z.b (20) und von 1-k geprüft wird ob die Zahlen {1..k} durch Ihre Quersummen ganzzahlig teilbar sind.
Habe das Programm soweit fertig das ich ne Zahl eingeben kann und mir diese auch angezeigt werden. Nur stecke ich grade woanders fest.
Mein Code sieht bisher so aus
Java:
class Querteiler {
public static void main(String arguments[]){int Zahl,k,i, Quersumme;

k = IO.readInt("Bitte geben Sie eine Zahl k ein:");
System.out.print("Folgende Zahlen von 1 - " + k + " sind ganzzahlig teilbar ");

for (i = 0;i<=k;i++) {//Anfang For
Quersumme=0;
System.out.println(i);
//Berechnung der Quersumme für 1-k
Zahl=i;
while(Zahl!=0)
//Anfang while
{
Quersumme=Quersumme+Zahl%10;
Zahl = Zahl/10;

}
//ENDE while


}//ENDE For

Wie teile ich nun die die Zahl 1-k durch ihre Quersumme und prüfe nach Rest ?
If Quersumme / Zahl mod.. ?
Und eigl dürfte ich doch dann keinen Integer mehr verwenden wegen dem Komma oder ?
 
Zuletzt bearbeitet:
Ganzzahlige Division mit /, den Rest bekommst du mit %, z.B. 14 / 5 = 2 und 14 % 5 = 4.

Willst du Nachkommastellen (was du hier nicht brauchst), musst du eine der Zahlen irgendwie in double oder float umwandeln, etwa 14.0 / 5 oder ((double) 14)/5 oder (1.0*14) / 5
 
kann ich das so überprüfen ?
Java:
while(Zahl!=0)
//Anfang while
{
Quersumme=Quersumme+Zahl%10;
Zahl = Zahl/10;
if((Zahl==0) && (Zahl%Quersumme==0))
{
system.out.println(Zahl2);

wenn kein Rest vorhanden ist gibt er die Zahl aus. Zeigt bei mir aber irgendeinen package error. No packages exist in this..
 
Naja, die if-Abfrage solltest du nach der Schleife machen. Und nach der Schleife brauchst du dann auf Zahl==0 nicht mehr überprüfen.
Desweiteren werden die Variablen klein geschrieben.
Zu der Fehlermeldung: wer zeigt wo welche genau?
 
SO ich habs endlich hinbekommen, hab die if in der while gelöscht und wie du es gesagt hast außerhalb platziert. Nun läuft es bestens =) danke !
Das mit dem Rest habe ich so gelöst
Java:
if(i % Quersumme==0)
{
System.out.println(i)
}
...
Er zeigt mir also nurnoch die Zahlen an die durch ihre Quersumme ganzzahlig teilbar sind
 

Zurück
Oben