一开始数组开的不够大WA了
#include<stdio.h>
#include<string.h>
int IsPal(char *num){
int len,i,j;
len = strlen(num);
for(i = 0,j = len -1;i<=j;i++,j--)
if(num[i]!=num[j])
break;
if(i<=j)
return 0;
else return 1;
}
void ReverseAndAdd(char *num){
char tmp[100];
char newch[100];
int len,i,j,carriage;
len = strlen(num);
for(i = 0,j = len - 1;j>=0;i++,j--)
tmp[i] = num[j];
for(i = 0,carriage = 0;i<len;i++){
newch[i] = (tmp[i] + num[i] - 2*'0' + carriage)%10 + '0';
carriage = (tmp[i] + num[i] - 2*'0' + carriage)/10;
}
if(carriage)
newch[i++] = carriage + '0';
newch[i] = '\0';
char ch;
len = strlen(newch);
for(i = 0,j = len -1;i<=j;i++,j--)
{
ch = newch[i];
newch[i] = newch[j];
newch[j] = ch;
}
strcpy(num,newch);
//return newch;
}
int main(){
int k,i;
char num[100],*str;
scanf("%s%d",num,&k);
for(i = 0;i<k;i++){
if(IsPal(num))
break;
ReverseAndAdd(num);
}
printf("%s\n%d\n",num,i);
}