1024. Palindromic Number

来源:互联网 发布:移动4 g首选网络模式 编辑:程序博客网 时间:2024/05/22 11:34
#include<algorithm>#include<string>#include<iostream>using namespace std;string step(string a){    string b=a,c=a;             //c 首先要有足够的位数!    reverse(b.begin(),b.end());    int carry=0;    for(int i=0;i<b.size();++i)    {        int tmp=a[i]+b[i]-'0'-'0'+carry;        c[i]=tmp%10+'0';        carry=tmp/10;    }    if(carry)        c+='0'+carry;    reverse(c.begin(),c.end());    return c;}bool is(string st){    for(int i=0;i<st.size()/2;++i)        if(st[i]!=st[st.size()-1-i])            return false;    return true;}int main(){    int i=0, k;    string st;    cin>>st>>k;    if(!is(st))        for(i=1;i<=k;++i)            if(is(st=step(st)))                break;    cout<<st<<endl<<(i>k?k:i);    return 0;}

0 0