Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 08. 01. 2012 14:14

Progresive
Příspěvky: 85
Reputace:   
 

Vrácení hodnoty - java

Uveďte a zdůvodněte, jakou hodnotu vrátí metoda sumaCifer(int a), jestliže ji zavoláte s parametrem, který je roven 375.   
public int sumaCifer(int a)
{
    int soucetCifer = 0;
    while(a != 0){
        soucetCifer = soucetCifer + a % 10;
        a = a/10;
}           
    return soucetCifer;
}
       
Mohl by jste mi s tím někdo pomoci? nedokážu dojít ke správnému výsledku 15..

Offline

  • (téma jako vyřešené označil(a) frank_horrigan)

#2 08. 01. 2012 14:38

frank_horrigan
Příspěvky: 938
Reputace:   31 
 

Re: Vrácení hodnoty - java

Ahoj,
celý fígl je v tom dělení deseti - je celočíselné, tedy celá desetinná část se ti odhodí...

Takže - první iterace:

a = 375
soucet = 0 + 5
a = 37

druha iterace:

a = 37
soucet = 5 +7
a = 3

třetí iterace:

a = 3
soucet = 12 + 3
a = 0

while podmínka false, cyklus konce, return 15

V čem konkrétně vězí problém?


The only thing worse than being wrong is staying wrong
Sun Tzu - The Art of War

Offline

 

#3 08. 01. 2012 15:33

Progresive
Příspěvky: 85
Reputace:   
 

Re: Vrácení hodnoty - java

v tom že jsem si to takhle krásně nerozepsal a někde se zamotal ;) děkuji moc

Offline

 

#4 08. 01. 2012 16:34

Progresive
Příspěvky: 85
Reputace:   
 

Re: Vrácení hodnoty - java

mhl by jste mě jen zkontrolovat?

public int sumaCifer(int a)
{
    int soucetCifer = 0;
    while(a != 0){
        soucetCifer = soucetCifer + a % 2;
        a = a/2;
}           
    return soucetCifer;
}
       
a jak třeba zde?

1)a=22 sc=0
2)a=11 sc=1
3)a=5 sc=2
4)a=2 sc=2
5) a=1 sc=3

takže odpoved je 3?

Offline

 

#5 08. 01. 2012 16:45

jindra
Příspěvky: 78
Reputace:   
 

Re: Vrácení hodnoty - java

Ano, odpověď by měla být 3.

Offline

 

#6 08. 01. 2012 17:06

Progresive
Příspěvky: 85
Reputace:   
 

Re: Vrácení hodnoty - java

A ještě poslední podobný ... vychází mi zo jinak než by mělo dle scriptů

   public int vypocet (int cislo){
          int hodnota = 1;
          do {
              hodnota *= cislo % 4;
              cislo /= 4;
          } while (cislo > 0);
          return hodnota;
      }

mě vyjde hodnota 10 ale měla by 4.... ;) kde dělám chybu nevím

Offline

 

#7 08. 01. 2012 17:27

Prochycz
Příspěvky: 183
Reputace:   
 

Re: Vrácení hodnoty - java

↑ Progresive:
Nenapsal si kolik by měla být vstupní hodnota int cislo.

Offline

 

#8 08. 01. 2012 17:41

Progresive
Příspěvky: 85
Reputace:   
 

Re: Vrácení hodnoty - java

ajj omluva... 41 ;) nevšiml jsem si...

Offline

 

#9 08. 01. 2012 17:53 — Editoval Prochycz (08. 01. 2012 17:53)

Prochycz
Příspěvky: 183
Reputace:   
 

Re: Vrácení hodnoty - java

Číslo 4 je správně. Postupný počítání:
hodnota*=41%4=1      čislo=41/4=10;
hodnota*=1*10%4=2   číslo=10/4=2;
hodnota*=2*2%4=4     číslo=2/4=0;
konec podmínky, výstup 4
Stačí to takhle?

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson