#include<stdio.h>
#include<string.h>
struct big{
int d[1010] , len;
big(){
len=0;
memset(d,0,sizeof(d));
}
};
void show(big a){
for(int i=a.len-1;i>=0;i--)printf("%d",a.d[i]);
}
big change(char a[]){
int i,len;
len=strlen(a);
big c;
for(i=0;i<len;i++){
c.len=len;
c.d[i]=a[len-i-1]-'0';
}
return c;
}
big change(big a){
big c;
c.len=a.len;
for(int i=0;i<a.len;i++){
c.d[i]=a.d[a.len-i-1];
}
return c;
}
bool judge_palindromic(big a){
for(int i=0;i<a.len/2;i++){
if(a.d[i]!=a.d[a.len-i-1])return false;
}
return true;
}
big add(big a, big b){
int i, carry=0;
big c;
for(i=0;i<a.len||i<b.len;i++){
if(a.d[i]+b.d[i]+carry>9){c.d[c.len++]=(a.d[i]+b.d[i]+carry)%10;carry=(a.d[i]+b.d[i]+carry)/10;}
else {c.d[c.len++]=a.d[i]+b.d[i]+carry;carry=0; }
}
if(carry!=0){c.d[c.len++]=carry;}
//show(c);printf("*\n");/
return c;
}
int main(){
int k, time=0;
char data[1010];
scanf("%s%d",data,&k);
big d=change(data);
while(!judge_palindromic(d)&&time<k){
big temp=add(d,change(d));
time++;
d=temp;
if(judge_palindromic(d))break;
}
show(d);
printf("\n%d\n",time);
return 0;
}
PAT-A1024
最新推荐文章于 2022-01-23 10:21:27 发布