Avatar
albertpatera
Redaktor
Avatar
albertpatera:

Ahoj,
mám dotaz, jak se dají vypsat v javě lichá čísla?
sudé jsou mi jasné.

for (int i = 25; i <= 50; i++)
        {
            System.out.print("-"+i*2+"-");
            if(i == 10)
            {
                System.out.println();
            }
            if(i == 20)
            {
                System.out.println();
            }
            if(i == 30)
            {
                System.out.println();
            }
            if(i == 40)
            {
                System.out.println();
            }
            if(i == 50)
            {
                System.out.println();
            }

a v případě lichých se

System.out.print("-"+i*2+"-");

nahradí něčím jiným. Čím? díky moc
//napadlo mě

System.out.print("-"+i*2+1+"-");

, ale to mi jaksi vypisuje tu jedničku před to daný číslo a normálně mi jí nepřičte. Díky

Editováno 24.3.2015 12:56
 
Odpovědět 24.3.2015 12:54
Avatar
Odpovídá na albertpatera
Luboš Běhounek (Satik):

zkus třeba přičíst jedničku :)
EDIT: musíš to hodit do závorky celý ten výpočet

Editováno 24.3.2015 12:57
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 24.3.2015 12:56
:)
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
albertpatera:

ale vždyť ho mám v závorce, mohl by jsi mi poslat ukázku, jak to myslíš? zkoušel jsem tam dá dvě závorky, ale to mi vypsalo chybu

 
Nahoru Odpovědět 24.3.2015 13:00
Avatar
albertpatera
Redaktor
Avatar
Avatar
martinkobelka
Redaktor
Avatar
martinkobelka:

Najdi si něco o výsledku po celočíselnem dělení a použití v podmínkach. Kód zkrátíš na cca třetinu ;)

 
Nahoru Odpovědět 24.3.2015 13:04
Avatar
sunspinx
Člen
Avatar
sunspinx:

public static void main(String[] args) {
// TODO code application logic here
for (int x=0; x<=100; x++) {
if ((x%2) != 0) continue;
System.out.prin­tln("Parne Cisla do 100: " +x);
}
}

Toto mas parne cisla, neparne by si mohol urobit takto:

public static void main(String[] args) {
// TODO code application logic here
for (int x=0; x<=100; x++) {
if ((x%2) != 1) continue;
System.out.prin­tln("Parne Cisla do 100: " +x);
}
}

 
Nahoru Odpovědět 24.3.2015 18:38
Avatar
1Pupik1989
Člen
Avatar
1Pupik1989:

A co takhle prostě vyhodit tu podmínku a zvyšovat o dva?

for (int x=0; x<=100; x+=2) {
  //sudá
}

for (int x=1; x<=101; x+=2) {
  //lichá
}
 
Nahoru Odpovědět 24.3.2015 21:44
Avatar
sunspinx
Člen
Avatar
Odpovídá na 1Pupik1989
sunspinx:

Je vela moznosti ako to urobit :-)

 
Nahoru Odpovědět  +1 24.3.2015 21:57
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

Použij modulo :) - operátor % - je to v podstatě zvytek po celočíselným dělení

  • např. 10%2 = 0 (sudá) 11%2 != 0 (==1) (lichá)
for (int i = 25; i <= 50; i++){
  if(i%10 == 0){ //každé desáté číslo
   System.out.print("i =" + i + " ");
    if(i%2 ==0){
      System.out.println("- sudé");  //println dělá na konci odřádkování - totožné jako print("\n")
    }else{
     System.out.println("- liché");
    }
  }
}

:o)

Editováno 24.3.2015 22:29
Nahoru Odpovědět 24.3.2015 22:28
Unix- svět, kde chcete být nulou :) (UID)
Avatar
1Pupik1989
Člen
Avatar
Odpovídá na sunspinx
1Pupik1989:

Proto jsem napsal tu nejjednoduší, kdyby se někdo v budoucnu po tom pídil. :)

Jen dodám, že sudé a liché se dá zjistit ještě binárním &.

Editováno 24.3.2015 23:08
 
Nahoru Odpovědět 24.3.2015 23:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.