Решаю задачку на определение является ли введенное число полиндромом. И не могу понять, почему у меня не работает данный код. Метод mirArray() почему-то зеркалит как заданную ему переменную mirArr, так и переменную array. В результате они становятся одинаковыми и результат кода всегда True. Сам код:
import java.util.Arrays;
import java.util.Scanner;
public class Task {
public static void main(String[] args) {
System.out.println( "Введите число для проверки: " );
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int [] array = convertInt2Array(num);
int [] mirArr = mirArray(array);
boolean result = Arrays.equals(array, mirArr);
if (result == true) {
System.out.println( num + " является полиндромом" );
} else {
System.out.println( num + " не является полиндромом");
}
// System.out.println(Arrays.toString(array));
// System.out.println(Arrays.toString(mirArr));
}
public static int[] convertInt2Array(int num) {
String temp = Integer.toString(num);
int[] array = new int[temp.length()];
for (int i = 0; i < temp.length(); i++) {
array[i] = temp.charAt(i) - '0';
}
return array;
}
public static int[] mirArray(int[]array) {
for (int i = 0; i < array.length / 2; i++) {
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = temp;
}
return array;
}
}
Ваши переменные array и mirArr ссылаются на один и тот же массив.
public static int[] mirArray(int[]array) {
int[] result = new int[array.length];
for (int i = 0; i < array.length; i++) {
result[length - i - 1] = array[i];
}
return result;
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости