知识点: 大整数加法,reverse 函数的应用
要注意的点 就是输入的数本身是回文数的情况
#include<iostream>
#include<algorithm>
using namespace std;
bool isr(string s){
for(int i=0;s[i];++i){
if(s[i]!=s[s.length()-1-i]) return false;
}
return true;
}
string add(string s,string t){
string temp="";
for(int i=0;s[i];++i){
int num=s[i]-'0'+t[i]-'0';
temp+=char(num%10+'0');
if(num>9){
if(s[i+1]) s[i+1]+=1;
else temp+="1";
}
}
reverse(temp.begin(),temp.end());
return temp;
}
int main(){
string num;
cin>>num;
if(isr(num)) {
cout<<num<<" is a palindromic number.";
return 0;
}
for(int i=0;i<10;++i){
string temp=num;
reverse(num.begin(),num.end());
cout<<temp<<" + "<<num<<" = ";
num=add(temp,num);
cout<<num<<endl;
if(isr(num)) {
cout<<num<<" is a palindromic number.";
return 0;
}
}
cout<<"Not found in 10 iterations.";
return 0;
}