В этой программе вы научитесь проверять, является ли число палиндромом в Java. Это делается с помощью цикла for и while.
Чтобы понять этот пример, вы должны знать следующие темы программирования Java:
- Заявление Java if… else
- Java while и do … while Loop
- Java для цикла
Пример 1. Программа для проверки палиндрома с использованием цикла while
public class Palindrome ( public static void main(String() args) ( int num = 121, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable while( num != 0 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; num /= 10; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Вывод
121 - это палиндромное число.
В этой программе
- Во-первых, значение данного числа (num) сохраняется в другой целочисленной переменной, originalInteger. Это потому, что нам нужно сравнить значения перевернутого числа и исходного числа в конце.
- Затем цикл while используется для перебора num до тех пор, пока он не станет равным 0.
- На каждой итерации последняя цифра числа сохраняется в остатке.
- Затем остаток добавляется к reversedInteger, так что он добавляется к следующему разряду (умножение на 10).
- Затем последняя цифра удаляется из числа после деления на 10.
- Наконец, сравниваются reversedInteger и originalInteger. Если равно, то это число палиндрома. Если нет, то это не так.
Вот выполняемые шаги:
Шаги выполнения палиндромачисло | число! = 0 | остаток | reverseInteger |
---|---|---|---|
121 | правда | 1 | 0 * 10 + 1 = 1 |
12 | правда | 2 | 1 * 10 + 2 = 12 |
1 | правда | 1 | 12 * 10 + 1 = 121 |
0 | ложный | - | 121 |
Пример 2: Программа для проверки палиндрома с использованием цикла for
public class Palindrome ( public static void main(String() args) ( int num = 11221, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable for( ;num != 0; num /= 10 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Вывод
11221 - это не палиндром.
В приведенной выше программе вместо цикла while используется цикл for.
На каждой итерации num /= 10
выполняется и num !=0
проверяется условие .