1136 A Delayed Palindrome (20 分)
题目大意
还是普通的回文数加法进行求解。
何之前一样高精度+reverse
代码复现
#include "iostream"
#include "vector"
#include "algorithm"
using namespace std;
bool is_cir(string a){
string b=a;
reverse(a.begin(),a.end());
return a==b;
}
int main(){
string num;
cin>>num;
int n=10;
int flag=0;
while (n--){
if (is_cir(num)){
flag=1;
break;
}
string a=num;
reverse(num.begin(),num.end());
string s;
int p=0;
for(int i=num.length()-1;i>=0;i--){
int c =(a[i]-'0')+(num[i]-'0')+p;
if(c>=10){
p=1;
} else{
p=0;
}
c=c%10;
s= to_string(c)+s;
}
if(p){
s='1'+s;
}
cout<<a<<" + "<<num<<" = "<<s<<endl;
num=s;
}
if (flag){
cout<<num<<" is a palindromic number.";
} else{
cout<<"Not found in 10 iterations.";
}
return 0;
}