Problem bei Aufgabe für Schule

  • Themenstarter Themenstarter KCT
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
K

KCT

Gast
Hi,
ich soll für die Schule ein Programm schreiben:
also der Startwert =27

wenn die Zahl gerade ist muss man diese durch 2 teilen
wenn die Zahl ungerade ist dann muss man die (Zahl *3) +1 rechnen

und das gilt solange bis die Zahl = 1 ist

(am ende siehts dann so aus : "27,82,41,124,62 etc)

nur ich hab keine Ahnung wie man abfragen kann ob die Zahl gerade ist

MfG
 
Code:
boolean gerade = zahl % 2 != 0;
Das % ist der Modulo-Operator. Er gibt den Rest einer Division zurück.
 
Hmm... irgendwie hilft mir das nicht weiter, da ich das ja in eine if schleife bauen muss
 
Es hilft auch deswegen nicht, weil es einen Tippfehler enthält :roll: (heut hab ichs mit Verwechslungen). Wenn dir diese Transferleistung nicht gelingt, wird es schwer, aber ... gut:
Code:
int zahl = irgendeineZahl();
if (zahl % 2 == 0)
{
    // zahl ist gerade
}

Und hier noch was zur allseits beliebten http://if-schleife.de/
 
es gibt keine if-Schleife, höchstens Bedingung oder so

du hattest nach einem Test nach ungerade gefragt und bist damit nicht zufrieden? 😉
von einem kompletten Programm war im ersten Post nicht die Rede
und wirds wohl auch nun nicht geben,

baue dein Programm mit if (Tipp: auch noch mit while-Schleife) so weit wie es geht
und beschreibe dann wo genau deine Probleme liegen
(eine andere Beschreibung als'weiß nix')
 
public class Hallo
{
public static void main(String[] args)
{
double y=27;
double zahl = y;
int zahl2 = (int)y;



if((((zahl/2)*10) - ((zahl2/2)*10)) == 0)
{
while(y>=1)
{
y=zahl/2;


System.out.print(""+y);
}
}

else
{
while(y>=1)
{
y= zahl*3 +1;
System.out.print(""+(int)y);
}
}
}
}


ja hab jetzt ne ungerade und gerade Zahlabfrage selbst gemacht,
nur er gibt immer 82 aus ... unendlich mal ...
geht das mit dem prinzip in etwa?
 
nimm (zahl % 2 == 0), das geht und verwirrt niemanden
(selber testen mit 0,1,2,3,4 erlaubt)

derzeit prüfst du nur einmal ob ungerade und teilst danach n-mal /2 oder das andere

richtig ist:
prüfen und dann eine Aktionen durchführen,
danach wieder prüfen und eine Aktion durchführen,

nimm also eine deiner beiden while-Schleifen und DARIN das if + die beiden Aktionen

-------

y= zahl*3 +1;

eher

y= y*3 +1;

du must die eine Zahl immer wieder verändern
 
ok thx, werds nachher nomma versuchen ^^
muss jetzt erst nochmal zur schule.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben