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;
}