优化这段代码import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Enter a number : "); int n = input.nextInt(); boolean flag = true; String s = Integer.toBinaryString(n);//将整型数转化为字符串 char[] arr = s.toCharArray();//将字符串存入字符数组 for (int i = 0; i < arr.length / 2; i++) if (arr[i] != arr[arr.length - i - 1]) { flag = false; System.out.println("Not Palindrome!"); break; } if (flag) System.out.println("Palindrome!"); input.close(); } }
时间: 2023-05-19 21:05:49 浏览: 117
这段代码可以通过以下方式进行优化:
1. 不需要将整型数转化为字符串,可以直接使用取模和除法操作来获取每一位数字,然后进行比较。
2. 可以使用位运算符来进行比较,这样可以提高运行效率。
3. 可以在循环中使用 break 语句来提前结束循环,这样可以减少不必要的比较操作。
以下是优化后的代码:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a number : ");
int n = input.nextInt();
boolean flag = true;
int temp = n;
int reverse = 0;
while (temp != 0) {
int digit = temp % 10;
reverse = reverse * 10 + digit;
temp /= 10;
}
if (n != reverse) {
flag = false;
System.out.println("Not Palindrome!");
}
if (flag)
System.out.println("Palindrome!");
input.close();
}
}
阅读全文