>> Home >> Algoritmy >> Java: Repunit

 

Java: Repunit

 

Repunit je celé číslo, které je složeno pouze ze samých jedniček. Například tedy 11, 111, 111111 a tak dále. Samotné číslo 1 se mezi čísla repunit nepočítá. Slovo repunit vzniklo z anglických slov repeated unit. Toto číslo zavedl americký významný matematik Albert Beiler. V tomto článku si ukážeme, jak si napsat metodu, která nám bude testovat, jestli je vstupní číslo repunit.

 

Číslo repunit je také dosti zajímavé tím, že jeho mocninami vznikají pěkná čísla. Například:

112 = 121

111112 = 123454321

1113 = 1367631

 

Jak vidíme, tak jsou výsledky mocnin nejen pěknými čísly, ale ve většině případů mocnění čísel repunit jsou výsledkem palindromická čísla. Palindromická čísla jsou čísla, která budou mít stejnou hodnotu, i když je budeme číst pozpátku.

Implementace do Javy:

 

    public static boolean repunit(int cislo) {
        String retezec = Integer.toString(cislo);
        if(retezec.length() == 1)
            return false;
        for(int i = 0;i < retezec.length();i++) {
            if(retezec.charAt(i) != '1')
                return false;
        }
        return true;
    }

 

Jedná se o snadný algoritmus. Vlastně si jen vytvoříme statickou metodu, která vrací booleanovské hodnoty (true nebo false). Metoda má vstupní parametr typu int, který slouží při volání metody pro vstup čísla, které chceme otestovat. Na začátku těla metody si převedeme naše vstupní číslo na textová řetězec. Potom otestujeme, jestli číslo není jen jednociferné, pokud ano, rovnou vracíme false, protože číslo jedna není repunit. Následuje cyklus, který projede všechny znaky našeho řetězce, a když se nějaký znak nerovná 1, tak rovnou vracíme false. Pokud cyklus proběhne v pořádku, vracíme true, a tím tato metoda končí.

 

pridej.cz Přidat.eu záložku

 

Diskuze k článku


 

Zatím žádné komentáže k tomuto článku.

 

Přidat nový komentář