public static void main(String[] args) {
//Input
Scanner sc = new Scanner (System.in);
System.out.println("Input a number: ");
int num = sc.nextInt();
//Solve
for (int i = num+1; i>num; i++)
{
int numCheck = 0;
int r;
int numAfter = i;
while (true)
{
r = i%10;
numCheck = numCheck*10+r;
numAfter = (numAfter-r)/10;
i = numAfter;
if (numAfter==0)
{
break;
}
}
if (numCheck==num)
{
System.out.println("Minumum palindrome number that greater than input number: "+i);
break;
}
}
}
Je suis en train d'écrire un programme pour imprimer un nombre minimum de palindrome (ex: 101, 232, 353, 303, 424, ...) et supérieur à un nombre d'entrée (entrée par java.util .Scanner). Mais ce programme n'a rien imprimé.Numéro Palindrome En Java
Pourriez-vous m'aider à le réparer?
Si je dans vos chaussures, la première chose que je ferais serait d'entrer dans le code à l'aide d'un débogueur. Que se passe-t-il lorsque vous essayez cela? –
Veuillez essayer de déboguer votre code, passez-le ligne par ligne pour voir où vous entrez dans une boucle infinie ou si vous sortez complètement de la boucle parce que la condition de boucle n'est pas remplie. – luk2302
Il n'a probablement pas imprimé quoi que ce soit car il n'a jamais fini d'être exécuté. Si vous deviez entrer '2', il commencerait par' 3' et continuerait à s'incrémenter jusqu'à l'éternité, car une fois qu'il atteindrait 'Integer.MAX_VALUE', il déborderait et recommencerait à partir de' Integer.MIN_VALUE', ce qui casserait 'pour() '-loop's condition donc il sortirait juste sans rien imprimer. Ou quelque chose de pire que ça. – Shark