Palindrome

Palindrome

Açıklama :

Program ilk olarak ilk ve en son basamaktaki sayı değerlerini karşılaştırıyor. En sondaki sayı değerini elde etmek için (sayı/x)%10 formulü kullanılıyor.

x : Mesela sayımız 11211 yani 5 basamaklı. x o zaman 10^5 yapıyoruz. Yani 10^(sayiBasamağı)
ve x her defasında 10’a bölünerek bir önceki basamağın sayı değerini veriyor.

İlk basamağı bulmak için (sayı/y)%10 formulü kullanılıyor.
y : İlk değeri 1’dir. Her döngüde y *= 10; işleminin gerçekleştiriliyor ki bir sonraki basamağa bakabilsin.

Kaynak Kod :

#include <stdio.h>
#include <stdlib.h>

int IsPalindrome(int);

int main() 
{
	int num=0;
	
	printf("Lutfen sayi girin : ");
	scanf("%d", &num);
	
	if(IsPalindrome(num))
		printf("Sayi PALINDROMEDIR!");
	else
		printf("Sayi PALINDROME DEGILDIR!");
	
	return 0;
}

int IsPalindrome(int number)
{
	if(number < 10)
		return 0;
	
	int sayac=1, basamak=0, birlik=1;
	
	while(sayac <= number)
	{
		basamak++;
		sayac *= 10;
	}
	sayac /= 10;
	basamak /= 2;
	while(basamak > 0)
	{
		//printf("son %d - bas %d\n", ((number/sayac)%10), ((number/birlik)%10));
		//Yukarıdaki kod her döngüde karşılaştırılan basamakları yazdırıyor.
		if(((number/sayac)%10) != ((number/birlik)%10))
			return 0;
		sayac /= 10;
		birlik *= 10;
		basamak --;
	}
	return 1;
}