1.检查某数是否为回文数:如12321,121,134431等等,如果是,返回1,否,返回-1
//检查某数是否为回文数:如12321,121,134431等等,如果是,返回1,否,返回-1
//思路:检查最高位和最低位是否相等,如等,去掉这两个数,如12321-->232-->3-->Yes;
int flag;
int main(void)
{
int a;
scanf("%d",&a);
tranverse(a);
printf("%d/n",flag);
return 0;
}
void tranverse(unsigned long int a)
{
unsigned int len = NumberLength(a);
int one = a % 10;
int high = a / power(len - 1);
if(len == 1)
{
flag = 1;
return;
}
else if(one == high)
tranverse(a / 10 - high * power(len - 2));
else
{
flag = -1;
return;
}
}
int NumberLength(unsigned long int a)
{
int n = 1;
while(a / 10 != 0)
{
a /= 10;
n ++;
}
return n;
}
int power(int a)
{
int n = 10;
if (a == 0)
return 1;
while(--a != 0)
n *= 10;
return n;
}
2.删除某个字符串第i个字符后的j个字符,删除成功,返回1,否则返回-1
int DeleteString(char s1[],int i,int j)
{
char *p = s1 + i,*q = s1 + i + j;
int len = strlen(s1);
if(q > s1 + len)
{
*p = '/0';
return -1;
}
else
{
while(q <= s1 + len)
*p++=*q++;
return 1;
}
}