C# Dersleri 52 - Palindrom Sayılar

C# Dersleri 52 - Palindrom Sayılar


C# ile Palindrom Sayıları Bulma: Bölümden Kalan Yöntemi ile Çözüm

Bir sayı, tersten okunduğunda da aynı kalıyorsa bu sayıya palindrom sayı denir. Örneğin, 121, 12321 ve 44 gibi sayılar palindrom sayılardır. Bu programda, bir sayının palindrom olup olmadığını kontrol etmek için sayıyı matematiksel olarak tersine çeviren bir yöntem kullanacağız.

Programın Çalışma Mantığı

Programda iki ana metot bulunmaktadır:

  • IsPalindrome(int number): Bir sayının palindrom olup olmadığını kontrol eden metot. Sayıyı tersine çevirmek için bölümden kalan yöntemi kullanır.
  • FindPalindromes(int start, int end): Verilen aralıktaki tüm palindrom sayıları bulan metot.

Main metodu, kullanıcıdan bir aralık alır ve bu aralıktaki tüm palindrom sayıları ekrana yazdırır.

Kod:

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Palindrom sayıları bulmak için bir başlangıç ve bitiş aralığı girin:");
        
        Console.Write("Başlangıç: ");
        int start = int.Parse(Console.ReadLine());
        
        Console.Write("Bitiş: ");
        int end = int.Parse(Console.ReadLine());
        
        Console.WriteLine($"\n{start} ile {end} arasındaki palindrom sayılar:");
        FindPalindromes(start, end);
    }

    // Bir sayının palindrom olup olmadığını kontrol eden metot
    static bool IsPalindrome(int number)
    {
        int original = number;
        int reversed = 0;

        while (number > 0)
        {
            int remainder = number % 10; // Son basamağı al
            reversed = (reversed * 10) + remainder; // Ters sayıyı oluştur
            number /= 10; // Sayıyı bir basamak küçült
        }

        return original == reversed;
    }

    // Belirtilen aralıktaki palindrom sayıları bulan metot
    static void FindPalindromes(int start, int end)
    {
        for (int i = start; i <= end; i++)
        {
            if (IsPalindrome(i))
            {
                Console.WriteLine(i);
            }
        }
    }
}

Programın Çıktısı:

Kullanıcıdan başlangıç ve bitiş aralığı istendiğinde:

Palindrom sayıları bulmak için bir başlangıç ve bitiş aralığı girin:
Başlangıç: 100
Bitiş: 150

100 ile 150 arasındaki palindrom sayılar:
101
111
121
131
141

Kodun Açıklaması

  1. IsPalindrome metodu: Sayıyı tersine çevirmek için:
    • Son basamağı bulmak için number % 10 işlemini kullanır.
    • Bu basamağı ters sayıya eklemek için reversed = (reversed * 10) + remainder işlemini yapar.
    • Sayının son basamağını silmek için number /= 10 işlemini uygular.
    Son olarak, tersine çevrilen sayı ile orijinal sayıyı karşılaştırır.
  2. FindPalindromes metodu: Verilen aralıkta döngü ile tüm sayıları kontrol eder ve palindrom olanları ekrana yazdırır.

Sonuç

Bu program, sayıyı string'e dönüştürmeden, matematiksel bir yöntem kullanarak palindrom sayılarını bulmaktadır. Bu yöntem, özellikle büyük sayılarla çalışırken daha performanslı olabilir. Recursive metotlar veya daha ileri algoritmalarla bu programı genişletmek de mümkündür.

Bu içeriği beğendiyseniz paylaşarak destek olabilirsiniz!


Eğitim İçeriği

Eğitim C# Dersleri
Kategori Programlama Dili
Ders Adeti 56 Ders
Dil Türkçe
Güncelleme 04/2024
  • HTML Dersleri

    HTML Dersleri Sıfırdan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 19 Ders
    Dil Türkçe
    Güncelleme 12/2020
    Derse Başla
  • Java Dersleri

    Java Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 125 Ders
    Dil Türkçe
    Güncelleme 09/2020
    Derse Başla
  • CSS Dersleri

    CSS Dersleri Başlangıçtan İleri Seviyeye

    Kategori Web Programlama
    Ders Süresi 49 Ders
    Dil Türkçe
    Güncelleme 10/2021
    Derse Başla
  • Java Örnek Projeler

    Java Örnek Projeler

    Kategori Programlama Dili
    Ders Süresi 20 Ders
    Dil Türkçe
    Güncelleme 10/2022
    Derse Başla
  • C# Dersleri

    C# Dersleri ve Nesne Yönelimli Programlama

    Kategori Programlama Dili
    Ders Süresi 100 Ders
    Dil Türkçe
    Güncelleme 04/2024
    Derse Başla