Palindromik Sayıları Bulma

Palindromik Sayıları Bulma

Palindromik Sayıları Bulma
Palindromik Sayıları Bulma | enginyenice.com

Merhaba arkadaşlar,

Bu yazımızda sizlerle birlikte C programlama dilini ve CodeBlocks derleyicisini kullanarak 0 ile 1.000 arasındaki tüm palindromik kuralına uyan sayıları bulmaya çalışacağız. Örneğimizi kodlamaya geçmeden önce Palidromik sayılarla ilgili kısaca bilgi vermek istiyorum.

Palindromik Sayılar

Tersten ve düzden okunuşları aynı olan sayılara palindromik sayılar denir.

Bir basamaklı palindromik sayılar: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

İki basamaklı palindromik sayılar: 11, 22, 33, 44, 55, 66, 77, 88, 99

şeklinde örneklendirebiliriz. Yukarıda görmüş olduğunuz örneklerde sayıların tersten ve düzden okunuşlarının bire bir aynı olduğunu görebilirsiniz.


Palindromik Sayıları Bulma Örneği

İlk olarak oluşturacağımız sayıları ters çevirmemiz gerekiyor bunun için tersCevir adında bir fonksiyon oluşturalım. Oluşturduğumuz bu fonksiyon tek parametreli bir fonksiyon olsun ve integer tipinde bize ters çevrilmiş sayıyı döndürsün.

int tersCevir(int sayi)
{
    return 0;
}

fonksiyonumuz temel olarak bu şekilde oluşturabiliriz.


Artık fonksiyonumuzun içerisini doldurabiliriz. Fonksiyona gelen sayıyı ters çevireceğimiz için ilk olarak integer tipinde bir adet tersSayi değişkeni oluşturalım. Bu değişkende ters çevrilmiş sayıyı atayacağız.

Ardından sayımızı ters çevirebilmek adına bir while döngüsü kuralım ve bu while döngüsü fonksiyona gönderilen sayı değeri 0’dan büyük oluncaya dek döngüsünü sürdürsün.

int tersCevir(int sayi)
{
    int tersSayi = 0;
    while(sayi> 0)
    {
      int basamak = sayi%10; //Birler basamağındaki değeri al
      tersSayi=tersSayi*10+basamak; // tersSayi değişkenini 10 ile çarp ve  basamak değişkenindeki değeri ekle
      sayi = sayi/10; // Sayı değişkenini 10'a böl
    }
    return tersSayi;
}

Artık fonksiyonumuzu oluşturduğumuza göre 0 ile 1000 arasındaki sayıları tek tek bu fonksiyonumuza gönderip gerçek sayı ile ters çevrilmiş sayının birbirlerine eşit olup olmadığına bakabiliriz.

Bunun için main fonksiyonumuzu aşağıda ki kod bloğu şeklinde değiştirebiliriz.

int main()
{
    int sayi = 1000; // Hangi sayıya kadar devam edeceği
    for(int i = 0;i<sayi;i++)
    {
        int tersSayi = tersCevir(i);
        if(i == tersSayi) // Ters çevrilen sayı ile gerçek sayımız eşit ise
           printf(" \t[%d]",i); // Ekrana sayi degerimizi yaz
    }
    return 0;
}

Artık 0 ile 1000 arasındaki palidromik sayıları tespit edebiliriz.


Örneğimizin Tüm Kodları

/*
* Engin Yenice
* enginyenice.com
*/
#include <stdio.h>
#include <stdlib.h>
// Palindrome Sayi
int tersCevir(int sayi)
{
    int tersSayi = 0;
    while(sayi> 0)
    {
      int basamak = sayi%10; //Birler basamağındaki değeri al
      tersSayi=tersSayi*10+basamak; // tersSayi değişkenini 10 ile çarp ve  basamak değişkenindeki değeri ekle
      sayi = sayi/10; // Sayı değişkenini 10'a böl
    }
    return tersSayi;
}
int main()
{
    int sayi = 1000; // Hangi sayıya kadar devam edeceği
    for(int i = 0;i<sayi;i++) 
    {
        int tersSayi = tersCevir(i);
            if(i == tersSayi) // Ters çevrilen sayı ile gerçek sayımız eşit ise
                printf(" \t[%d]",i); // Ekrana sayi degerimizi yaz
    }
    return 0;
}

Örnek Çıktısı


Palindromik sayıları bulma örneğimi incelediğiniz için teşekkür ederim. Sağlıklı günler dilerim.

Bloğumu halen incelemediniz mi ? https://enginyenice.com/

Hakkımda: https://enginyenice.com/hakkimda/

İletişim: https://enginyenice.com/iletişim/

Yayımlayan

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir