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
Stránky: 1
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
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?
Offline
v tom že jsem si to takhle krásně nerozepsal a někde se zamotal ;) děkuji moc
Offline
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
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
↑ Progresive:
Nenapsal si kolik by měla být vstupní hodnota int cislo.
Offline
ajj omluva... 41 ;) nevšiml jsem si...
Offline
Stránky: 1