package tzh; import java.util.Scanner; public class PalindromeNumber { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入一个整数:"); int num = input.nextInt(); int temp = num; int digit = 0; while(temp != 0) { temp /= 10; digit++; } System.out.println(num + " 是 " + digit + " 位数。"); boolean isPalindrome = true; for(int i = 0; i < digit / 2; i++) { int leftDigit = (int)(num / Math.pow(10, digit - i - 1)) % 10; int rightDigit = (int)(num / Math.pow(10, i)) % 10; if(leftDigit != rightDigit) { isPalindrome = false; break; } } if(isPalindrome) { System.out.println(num + " 是回文数。"); } else { System.out.println(num + " 不是回文数。"); } } }请检查这段代码
时间: 2024-02-14 12:06:25 浏览: 199
这段代码看起来没有什么问题,但是建议可以加上一些异常处理,例如输入非整数的情况。另外,可以将计算每一位数字的代码提取成一个方法,这样可以使代码更加清晰简洁。最后,建议加上注释,方便其他人理解代码的意图。下面是修改建议的代码:
```
package tzh;
import java.util.Scanner;
public class PalindromeNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 输入一个整数
System.out.print("请输入一个整数:");
int num = input.nextInt();
// 计算数字位数
int digit = getDigit(num);
System.out.println(num + " 是 " + digit + " 位数。");
// 判断是否为回文数
boolean isPalindrome = true;
for (int i = 0; i < digit / 2; i++) {
int leftDigit = getDigitAtIndex(num, digit - i - 1);
int rightDigit = getDigitAtIndex(num, i);
if (leftDigit != rightDigit) {
isPalindrome = false;
break;
}
}
if (isPalindrome) {
System.out.println(num + " 是回文数。");
} else {
System.out.println(num + " 不是回文数。");
}
}
// 计算数字的位数
public static int getDigit(int num) {
int digit = 0;
while (num != 0) {
num /= 10;
digit++;
}
return digit;
}
// 获取数字指定位置上的数字
public static int getDigitAtIndex(int num, int index) {
return (int) (num / Math.pow(10, index)) % 10;
}
}
```
这样修改后的代码更加清晰明了,也更加易于维护和扩展。
阅读全文