Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Ten Zdeněk :7.4.2015 19:18

Řešil jsem jednu takovou úlohu u které jsem potřeboval určit ciferný součet čísla, něco jsem napsal, ale nefungovalo to. Samozřejmě jsem si našel metodu, která to umí, ale jakožto začátečník si chci osvětlit proč ta moje metoda nefunguje nebo není správná. Můj pokus :

public static int cifernySoucet(int cislo)
    {
        int cifernySoucet = 0;


        for(int i = 0;Integer.toString(cislo).length() < i ; i++ )
        {

            cifernySoucet += Integer.parseInt(Character.toString(Integer.toString(cislo).charAt(i)));

        }
        return cifernySoucet;
    }
 
Odpovědět
7.4.2015 19:18
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Ten Zdeněk
Jan Vargovský:7.4.2015 19:33
string strCislo = Integer.toString(cislo);
for(...)
cifernySoucet += (strCislo.charAt(i) - '0');

Tohle v Javě nejde?

 
Nahoru Odpovědět
7.4.2015 19:33
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Ten Zdeněk
Jan Vargovský:7.4.2015 19:45

Jo jinak, chybu máš ve foru. Konkrétně v podmínce.

Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět
7.4.2015 19:45
Avatar
Hartrik
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Hartrik:8.4.2015 16:45

Jde...

BTW asi by bylo dobré fixnout záporné hodnoty.

public static int digitSum(int n) {
    return String.valueOf(Math.abs(n)).chars().map(c -> c - '0').sum();
}
 
Nahoru Odpovědět
8.4.2015 16:45
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 4 zpráv z 4.