2
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;
}
}
}
私は最小回文番号を印刷するプログラムを書いています(例:101、232、353、303、424、...)とjava.utilのにより入力された数より多い(入力.Scanner)。 しかし、このプログラムは何も印刷しませんでした。回文数
修正できますか?
私はあなたの靴にあった場合は、私がしたいまず最初に、デバッガを使用してコードにステップして、次のようになります。
ところで、コードはこのよう読みやすくすることができます。これを試してみるとどうなりますか? –
コードをデバッグして、行ごとにステップを実行して、無限ループにどこに入っているのか、またはループ条件が完全に満たされていないためにループから完全に外れるのを見てください。 – luk2302
実行を決して完了しなかったため、おそらく何も印刷されませんでした。 '2'を入力すると、' 3'から始まり、永久にインクリメントし続けます。なぜなら、 'Integer.MAX_VALUE'に達するとオーバーフローし、' Integer.MIN_VALUE'から再び始まり、 'for () '-loopの状態になるので、何も印刷せずに終了します。またはそれより悪いこと。 – Shark