#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string process(string num,string reverseNum){
int len = num.length();
int c = 0;
printf("%s + %s = ",num.c_str(),reverseNum.c_str());
for(int i = len - 1;i >= 0;i--){
int a = num[i] - '0';
int b = reverseNum[i] - '0';
num[i] = (a + b + c) % 10 + '0';
c = (a + b + c) / 10;
}
if(c != 0){
num += num[len - 1];
for(int i = len - 1;i >= 1;i--)
num[i] = num[i - 1];
num[0] = (char)c + '0';
}
printf("%s\n",num.c_str());
return num;
}
int main(){
string num;
cin>>num;
int findPali = false;
string reverseNum = num;
for(int i = 0;i < 10;i++){
reverseNum = num;
reverse(reverseNum.begin(),reverseNum.end());
if(reverseNum == num){
findPali = true;
break;
}
num = process(num,reverseNum);
}
if(reverseNum == num){
findPali = true;
}
if(findPali == false)
printf("Not found in 10 iterations.");
else
printf("%s is a palindromic number.",num.c_str());
system("pause");
return 0;
}
PAT | A1136 A Delayed Palindrome
最新推荐文章于 2021-04-10 13:54:35 发布