5.00 / 1 oy

Java'da bir sayının palindrom olup olmadığını kontrol etmek

Bir yazının baştan sona okunması ile sondan başa okunması aynı ise bu yazılara palindrom adı verilir. 

Örnek: kabak palindromik bir sözcüktür çünkü sondan başa okunması ile baştan sona okunması aynıdır.

Bu soruda tamsayıların palindrom olup olmadıklarını kontrol eden bir java programı yazacağız. Bu problemin çözümünde kullanacağımız algoritma şu şekilde olacak:

1. Tamsayıyı String  veri tipine dönüştür

2. String'i bir diziye dönüştür ve baştaki ve sondaki (sıfırıncı ve (n-1). elemanlar) harfleri karşılaştır. Bu elemanların aynı olması durumunda karşılaştırma işlemini bir baştan bir sondan hizalayarak sürdür.

Örneğin:

757 palindrom mudur? Doğru (757 = 757) Tersten yazılışı da aynı

528 palindrom mudur? Yanlış (528 != 825) Tersten yazılışı farklı

Kodlar:

Scanner girdi = new Scanner(System.in);
System.out.println("Lütfen bir tamsayı yazın");
int sayi = girdi.nextInt();

String str = String.valueOf(sayi);
int i = 0;
int j = str.length() - 1;
boolean kontrol = true;
while (i < j) {
    if (str.charAt(i++) != str.charAt(j--)) {
        kontrol = false;
        break;
    }
}

if (kontrol)
	System.out.println(sayi+" sayısı palindrom bir sayıdır");
else
	System.out.println(sayi+" sayısı palindrom bir sayı değildir");

Çıktı:

Lütfen bir tamsayı yazın
> 85258
85258 sayısı palindrom bir sayıdır

Alternatif çözüm: Sayının String'e dönüştürüldükten sonra tersten yazdırılmış bir kopyasını alıp iki String'i karşılaştırma çözümünü de uygulayabilirdik.

 

utku33

18.02.2020 03:59

Bu soru 2 kez yanıtlandı.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java'da bir sayının palindrom olup olmadığını kontrol etmek

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.