1
因此,我编写了我的回文编程程序,该程序应该打印范围内所有回文数字,但它似乎只打印0到9,这意味着它评估所有其他数字为假。我不明白为什么?使用数字位数打印所有回文数字
public class Palindrome
{
public static void main(String [] args)
{
int number = 0;
final int END = 10000;
while (number <= END)
{
if (isPalindrome(number))
{
System.out.print(" " + number);
}
number++;
}
}// end of main method
public static boolean isPalindrome(int number)
{
//local variables
int counter = 0;
int numDigits = 0;
final int END = 10000;
boolean palindrome = false;
while (number <= 10000)
{
//formula for finding the number of digits in a number
numDigits = getNumDigits(number);
//special case if number = 0
if (numDigits == 1)
{
palindrome = true;
break;
}
if(counter < numDigits/2)
{
if (((number/(int) Math.pow(10, counter)) % 10) != (number/(int) Math.pow(10, numDigits - counter - 1)))
{
palindrome = false;
counter++;
}
else
{
palindrome = true;
}
}
number++;
}// end of loop
return palindrome;
}//end of isPalindrome Method
public static int getNumDigits(int number)
{
//local variables
int numDigits = (int) (Math.log10(number) + 1);
if(number == 0)
{
numDigits = 1;
}
return numDigits;
}//end of getNumDigits method
}
启动您的调试器并亲自查看。 –
我没有调试器 –
然后得到一个正常的IDE(如Eclipse)。免费。 –