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.