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čí.
