有两个测试点过不去,很迷。。。
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
string num, temp;
void add(string t)
{
int len = t.length();
int index = len - 1;
int flag = 0, temp = 0;
for (int i = 0; i < len; i++)
{
temp = (t[i] - '0') + (num[i] - '0') + flag;
flag = 0;
if (temp >= 10)
{
temp = temp - 10;
flag = 1;
}
num[i] = (temp + '0');
if (i == len - 1 && flag == 1)
{
num += (1 + '0');
}
}
reverse(num.begin(), num.end());
}
int main()
{
int n, m;
cin >> num >> n;
for (int i = 0; i < n; i++)
{
m++;
string t = num;
reverse(t.begin(), t.end());
if (t == num) break;
else add(t);
string s = num;
reverse(s.begin(), s.end());
if (s == num) break;
}
cout << num << '\n' << m;
}