程序没有读取for循环

时间:2014-03-21 12:23:56

标签: java

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 );
    }
}

4 个答案:

答案 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循环不会第一次执行,因此没有操作。始终使用适当的条件。