I det här programmet lär du dig att kontrollera om ett nummer är palindrom eller inte i Java. Detta görs genom att använda for and while loop.
För att förstå detta exempel bör du ha kunskap om följande Java-programmeringsämnen:
- Java if … else Uttalande
- Java medan och gör … medan Loop
- Java för Loop
Exempel 1: Program för att kontrollera palindrom med hjälp av en loop
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."); ) )
Produktion
121 är ett palindromnummer.
I detta program,
- Först lagras det angivna talets (num) värde i ett annat heltalsvariabel, originalInteger. Detta beror på att vi måste jämföra värdena för det omvända numret och det ursprungliga numret i slutet.
- Sedan används en stundslinga för att slinga igenom num tills den är lika med 0.
- Vid varje iteration lagras den sista siffran i num i resten.
- Därefter läggs resten till reversedInteger så att det läggs till nästa platsvärde (multiplicering med 10).
- Därefter tas den sista siffran bort från num efter division med 10.
- Slutligen jämförs reversedInteger och originalInteger. Om det är lika är det ett palindromnummer. Om inte, så är det inte.
Här är exekveringsstegen som äger rum:
Steg för utförande av palindromantal | num! = 0 | resten | reversedInteger |
---|---|---|---|
121 | Sann | 1 | 0 * 10 + 1 = 1 |
12 | Sann | 2 | 1 * 10 + 2 = 12 |
1 | Sann | 1 | 12 * 10 + 1 = 121 |
0 | falsk | - | 121 |
Exempel 2: Program för att kontrollera Palindrome med för loop
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."); ) )
Produktion
11221 är inte ett palindrom.
I ovanstående program används för loop istället för en while-loop.
Vid varje iteration num /= 10
körs och tillståndet num !=0
kontrolleras.