import java.lang.Math;
import java.text.*;
public class Problem4 {
public static int reverse( int n ) {
int i = 0;
while ( n != 0 ) {
int r = n % 10;
i = (i * 10) + r;
n /= 10;
}
return i;
}
public static boolean isPalindrome( int n ) {
return ( n == reverse(n) ) ? true : false;
}
public static void main( String[] args ) {
int jHi=0, jlow=0, dec=0;
int P=1;
int i=999, j=1;
for ( i=999; i <= 100; i = i - 1 )
{
if ( i % 11 == 0 )
{
jHi = 999;
jlow = 100;
dec = 1;
}
else
{
jHi = 990;
jlow = 100;
dec = 11;
}
for ( j = jHi; j >= jlow; j = j - dec )
{
P = i * j;
if ( isPalindrome(P) )
{
break;
}
else
{
continue;
}
}
}
System.out.println( "Largest Palindrome is " + P );
}
}
答案 0 :(得分:4)
您的for
循环未执行,因为永远不会遇到循环条件i<=100
,初始值为i=999
。
由于您希望循环向下计数,请更改
for(i=999; i<=100; i=i-1)
到
for(i=999; i>=100; i=i-1)
答案 1 :(得分:0)
I = 999; I&LT; = 100; i = i-1 - 将其改为i = 999; I&GT; = 100; I = I-1
答案 2 :(得分:0)
这意味着“以i
作为999开始,并且i
小于或等于100,每步减少i
一次”:
for(i=999; i<=100; i=i-1)
答案 3 :(得分:0)
你的for循环不会第一次执行,因此没有操作。始终使用适当的条件。