1024 Palindromic Number (25 分)

水题~。

当出现给定字符串已经是回文串时,不需要对其进行操作,输出原数与0。

const int N=1010;
string s;
int k;

bool check(string s)
{
    for(int i=0;i<s.size()/2;i++)
        if(s[i] != s[s.size()-1-i])
            return false;
    return true;
}

int main()
{
    cin>>s>>k;

    if(check(s))
    {
        cout<<s<<endl;
        cout<<0<<endl;
    }
    else
    {
        int step=-1;
        for(int i=1;i<=k;i++)
        {
            string a=s;
            reverse(s.begin(),s.end());
            string b=s;

            string res;
            int carry=0;
            for(int i=0;i<s.size();i++)
            {
                int t=(a[i]-'0')+(b[i]-'0')+carry;
                res+='0'+t%10;
                carry=t/10;
            }
            if(carry) res+='0'+carry;
            s=res;

            if(check(res))
            {
                step=i;
                break;
            }
        }

        reverse(s.begin(),s.end());
        cout<<s<<endl;

        if(~step) cout<<step<<endl;
        else cout<<k<<endl;
    }
    
    //system("pause");
    return 0;
}
原文地址:https://www.cnblogs.com/fxh0707/p/14428011.html