Я должен написать программу на языке java (домашнее задание), которая дает ввод (x), ввод в двоичном формате, сообщает, является ли ввод палиндромом, и сообщает, является ли двоичный файл из ввода палиндромом. Я не могу использовать API, отличный от System.out.print, и не могу использовать строки.
Пока все хорошо: я написал программу, и она работает до x = 1023 (из-за int). Какой фрагмент кода я должен отредактировать, чтобы ввод мог быть любым положительным числом?
class Palindromes {
public static int DtoBinary(int x) {
int y = x;
int w = 1;
int v = 0;
int z = 1;
int u = 0;
while (z < y) {
z = z * 2;
u++;
}
z = z / 2;
for (int t=1; t<u; t++) {
w = 10 * w;
}
v = v + w;
y = y - z;
while (y > 0) {
z = z / 2;
if (z <= y) {
w = w / 10;
v = v + w;
y = y - z;
} else if (y == 1) {
v = v + 1;
y = 0;
} else {
w = w / 10;
v = v + 0;
}
}
return v;
}
public static boolean Palindrome(int x) {
int s = x;
int r = 0;
while (s > 0) {
int q = s % 10;
r = r * 10 + q;
s = s / 10;
}
if (x == r) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
int x = 1023;
System.out.print(x + " " + DtoBinary(x));
if (Palindrome(x)) {
System.out.print(" yes");
} else {
System.out.print(" no");
}
if (Palindrome(DtoBinary(x))) {
System.out.print(" yes");
} else {
System.out.print(" no");
}
}
}