В тази програма ще се научите да проверявате дали даден номер е палиндром или не в Java. Това се прави с помощта на цикъл for и while.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:
- Java, ако … друго Изявление
- Java докато и да … докато Loop
- Java за Loop
Пример 1: Програма за проверка на Palindrome с помощта на цикъл 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 е число на палиндром.
В тази програма,
- Първо, стойността на дадено число (число) се съхранява в друга целочислена променлива, originalInteger. Това е така, защото трябва да сравним стойностите на обърнатото число и оригиналното число в края.
- След това се използва цикъл while, за да премине през num, докато е равен на 0.
- При всяка итерация последната цифра от числото се съхранява в останалата част.
- След това остатъкът се добавя към reversedInteger, така че да се добави към следващата стойност на мястото (умножение по 10).
- След това последната цифра се премахва от число след деление на 10.
- Накрая се сравняват reversedInteger и originalInteger. Ако е равно, това е число на палиндром. Ако не, не е така.
Ето стъпките за изпълнение, които се извършват:
Стъпки за изпълнение на палиндромаброй | число! = 0 | остатък | reversedInteger |
---|---|---|---|
121 | вярно | 1 | 0 * 10 + 1 = 1 |
12 | вярно | 2 | 1 * 10 + 2 = 12 |
1 | вярно | 1 | 12 * 10 + 1 = 121 |
0 | невярно | - | 121 |
Пример 2: Програма за проверка на Palindrome, използвайки 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
се проверява състоянието.