思路
1000位数字的加法,转为字符串,每一位去加。(类比1074题中对10进制数的处理方法)
实现
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
bool run(string str,int n)
{
if (n == 10)
{
cout << "Not found in 10 iterations." << endl;
return false;
}
else
{
string str2 = str,sum="";
reverse(str.begin(), str.end());
if (str2 == str)
{
cout << str << " is a palindromic number." << endl;
return true;
}
int jin = 0;
for (int i = str.size() - 1; i >= 0; i--)
{
int a = str2[i] - '0', b = str[i] - '0';
if (a + b + jin < 10)
{
sum.insert(0, to_string(a + b + jin));
jin = 0;
}
else
{
sum.insert(0, to_string((a + b + jin)%10));
jin = (a + b + jin) / 10;
}
}
if (jin)
sum.insert(0, to_string(jin));
cout << str2 << " + " << str << " = " << sum << endl;
return run(sum, ++n);
}
}
int main()
{
string str, str2;
cin >> str;
run(str, 0);
return 0;
}