#include <stdio.h>
#include <string.h>
int IsPalindromic(int num[],int len);
int Add(int num[],int num2[], int len);
int main()
{
int k,len,i,step=0,num[111],reversed[111];
long long n;
scanf("%lld %d", &n,&k);
for (len = 0; n; len++) {/*反过来存放*/
num[len] = n % 10;
n /= 10;
}
while (step<k) {
if (IsPalindromic(num, len))
break;
for (i = 0; i < len; i++)
reversed[len - i - 1] = num[i];
len=Add(num, reversed, len);
step++;
}
for (i = 0; i < len; i++)
printf("%d", num[i]);
printf("\n%d", step);
return 0;
}
int IsPalindromic(int num[],int len)
{
int i = 0, j = len-1,Is=1;
while (i != j&&j + 1 != i) {
if (num[i] != num[j]) {
Is = 0;
break;
}
i++;
j--;
}
return Is;
}
int Add(int num[], int num2[], int len)/*相加并存放在num中*/
{
int i,CF=0,j=0,temp,newlen;
int ans[111];
for (i = 0; i < len; i++) {
temp = num[i] + num2[i] + CF;
CF = temp / 10;
ans[i] = temp % 10;
}
if (CF)
ans[i++] = CF;
newlen = i;
while (i--)
num[j++] = ans[i];
return newlen;
}
1024. Palindromic Number
最新推荐文章于 2022-11-05 19:26:29 发布