java - 在java中查找二进制表示是否是回文
问题描述
他想知道这个数字是不是很精彩
如果这个数字是奇数并且它的二进制表示是回文,那么这个数字就是美妙的。
这是我的问题 https://codeforces.com/group/MWSDmqGsZm/contest/223205/problem/C
错误是:测试 4 上的运行时错误
static public void zero(long n) {
if (n == 0) {
System.out.println("NO");
}
}
static public String binary(long n) {
String bin = "";
while (n > 0) {
bin += (n % 2 + 0);
n /= 2;
}
return bin;
}
static public void CheckOdd(long n) {
if (n % 2 != 0) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long n = in.nextLong();
if (n == 0) {
zero(n);
} else {
long x = Integer.parseInt(binary(n));
long original = x;
long remainder, reverse = 0;
while (x != 0) {
remainder = x % 10;
reverse = reverse * 10 + remainder;
x /= 10;
}
if (original == reverse) {
CheckOdd(n);
} else {
System.out.println("NO");
}
}
}
输入:262145
output : java.lang.NumberFormatException: For input string: "1000000000000000001" at
java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at NewTest.main(NewTest.java:39)
解决方案
推荐阅读
- python - 我的烧瓶模型运行时如何获取运行 YOLO 模型的输入?
- c++ - 如何将多个十六进制值连接到一个
- php - 无法重新初始化数据表错误弹出和居中对齐数据表
- angular7 - 将数据源拆分为多个 mat 表
- python - 当 lib 文件夹中存在烧瓶时,GCP 找不到烧瓶
- mongodb - MongoDB 文档大小限制
- javascript - 如何在javascript中查找JSON数组中的重复值?
- html - 是否可以使用纯 CSS/HTML 而没有 JavaScript 来实现 GDPR Cookie 同意?不希望脚本阻止程序阻止它
- java - 如何访问键“text/plain”中的数据
- java - 将 JVM 调试参数传递给 Spring JarLauncher