Tässä ohjelmassa opit tarkistamaan, onko numero Java-palindrominen vai ei. Tämä tehdään käyttämällä silmukkaa for while.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:
- Java jos… muuten lausunto
- Java taas ja tee … samalla kun silmukka
- Java silmukalle
Esimerkki 1: Ohjelma Palindromen tarkistamiseksi while-silmukan avulla
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."); ) )
Tuotos
121 on palindromiluku.
Tässä ohjelmassa
- Ensinnäkin annetun numeron (num) arvo tallennetaan toiseen kokonaislukumuuttujaan, originalInteger. Tämä johtuu siitä, että meidän on vertailtava käänteisen luvun ja alkuperäisen luvun arvoja lopussa.
- Sitten jonkin aikaa silmukkaa käytetään silmukan läpi numero, kunnes se on yhtä suuri kuin 0.
- Kullakin iteraatiolla viimeinen numeronumero tallennetaan loppuosaan.
- Sitten loput lisätään reversedIntegeriin siten, että se lisätään seuraavaan paikka-arvoon (kerrottuna 10: llä).
- Sitten viimeinen numero poistetaan numerosta numerolla 10 jakamisen jälkeen.
- Lopuksi verrataan käänteistä ja alkuperäistä kokonaislukua. Jos se on yhtä suuri, se on palindromiluku. Jos ei, se ei ole.
Tässä ovat suoritusvaiheet:
Palindromen suoritusvaiheetnumero | numero! = 0 | loput | käänteinen kokonaisluku |
---|---|---|---|
121 | totta | 1 | 0 * 10 + 1 = 1 |
12 | totta | 2 | 1 * 10 + 2 = 12 |
1 | totta | 1 | 12 * 10 + 1 = 121 |
0 | väärä | - | 121 |
Esimerkki 2: Ohjelma Palindromen tarkistamiseksi käyttämällä silmukkaa
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."); ) )
Tuotos
11221 ei ole palindromi.
Yllä olevassa ohjelmassa käytetään silmukkaa hetkellisen silmukan sijaan.
Jokaisella iteraatiolla num /= 10
suoritetaan ja kunto num !=0
tarkistetaan.