Palindrome program – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Palindrome program – Java – Fórum – Programujte.comPalindrome program – Java – Fórum – Programujte.com

 

Pavel
~ Anonymní uživatel
383 příspěvků
18. 7. 2015   #1
-
0
-

Ahoj, mám napsat palindrome program, čili vypsat nejvyšší číslo, které je palindrom a to do 1000

Jenže program mi hází samé nuly, buď je chyba ve while, nebo v tom pole[i]=i+1? ta while mi přijde jako blbost, protože mám vlastně zjisti, jestli to číslo do 1000

když to změním na while(pole[i]<1000) nic to nedělá :(

Nějak netuším :( 

public class Main {

    public static void main(String[] args) {
   int[] pole = new int[1000];
        for (int i = 0; i < pole.length; i++) {
            pole[i]= i +1;
            while(pole[i]!=0){
                int temp = 0;
                int reverse = 0;
                temp = pole[i]%10;
                reverse = reverse*10+temp;
                pole[i] = pole[i]/10;
            }
            System.out.println(pole[i]);
        }
    }
}
Nahlásit jako SPAM
IP: 83.208.189.–
sakal910
Stálý člen
18. 7. 2015   #2
-
0
-

#1 Pavel
 

public static void main(String[] args) {        
        for (int i = 0; i < 1000; i++) {            
            int number = i + 1;
            int n = number;
            
            int reverse = 0, tmp;
            
            while(number > 0){
                tmp = number % 10;
                reverse = reverse * 10 + tmp;
                number = number / 10;
            }
            
            if(reverse == n){
                System.out.println(n + " je palindrom");
            }else{
                System.out.println(n + " neni palindrom");
            }
        }
    }

Ahoj, tvůj problém je ten že na konci cyklu while vkládáš do pole[i] hodnotu pole[i] / 10 což při posledním průchodu je vždy 0, takže v konečném stavu ti v poli na každém indexu zůstane 0 ;-) takže si musíš to číslo, které kontroluješ uložit do nějaké jiné proměnné (n) a po kontrole resp. po dojetí cyklu while si zkontrolovat zda je to číslo které jsi kontroloval (uložené v pomocné proměnné n) stejné jako to reverzní a pak s ním pracovat jak potřebuješ ;-) Možná sem to napsal trochu zmatenně, za to se omlouvám, ale snad to z toho pochopíš :D

Nahlásit jako SPAM
IP: 31.222.0.–
Pavel
~ Anonymní uživatel
383 příspěvků
18. 7. 2015   #3
-
0
-

Aha, no já měl původně taková záměr, abych vypsal jen jedno číslo, to nejvyšší.

Ale děkuji za vysvětlení, už jsem to pochopil, když se na to dívám je to blbost, co jsem napsal :))

Nahlásit jako SPAM
IP: 83.208.189.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 29 hostů

Podobná vlákna

Program — založil Jan Burant

C# program — založil Tomas.P

Program — založil dakine

C# program — založil xpiii

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý