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.
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.
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);
}
}
}
}
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
IsPalindrome metodu: Sayıyı tersine çevirmek için:
number % 10 işlemini kullanır.reversed = (reversed * 10) + remainder işlemini yapar.number /= 10 işlemini uygular.FindPalindromes metodu: Verilen aralıkta döngü ile tüm sayıları kontrol eder ve palindrom olanları ekrana yazdırır.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.