#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <windows.h>
using namespace std;
// x^y
int power(int x, int y)
{
if(x==0)
return 0;
if(y==0)
return 1;
if(y==1)
return x;
return x * power(x,y-1);
}
// getDigit(12345) = 5
int getDigitLen(int digit)
{
int len = 0;
while(digit%power(10,len)!=digit)
len++;
return len;
}
// isSymmetricDigit(12321) = true
// isSymmetricDigit(123) = false
bool isSymmetricDigit(int digit)
{
if(digit<100 && digit >-100)
return true;
int len = getDigitLen(digit);
int myDigit = 0;
int course = len;
int _digit = digit;
while(course>0)
{
myDigit += digit/power(10,course-1) * power(10,len-course);
digit = digit-digit/power(10,course-1)*power(10,course-1);
course--;
}
return myDigit==_digit;
}
int _tmain(int argc, _TCHAR* argv[])
{
int Positive[3] = {121,1221,12321};
int Negative[3] = {123,1234,123450};
for(int i=0;i<3;i++)
{
if(!isSymmetricDigit(Positive[i]))
printf("Error!!! %d Expected 'true', got 'false/r/n",Positive[i]);
if(isSymmetricDigit(Negative[i]))
printf("Error!!! %d Expected 'false', got 'true/r/n",Negative[i]);
}
return 0;
}