#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
char s1[1200],s2[1200];
int main()
{
int n=10;
cin>>s1;
while(n--)
{
int len1=strlen(s1);
memset(s2,0,sizeof(s2));
int num1[1200]={0},num2[1200]={0},num3[1200]={0};
for(int i=0;s1[i]!='\0';i++)
{
s2[strlen(s1)-1-i]=s1[i];
num1[i]=s1[i]-'0';
num2[strlen(s1)-1-i]=num1[i];
}
s2[strlen(s1)]='\0';
bool be=false;
for(int i=0,j=strlen(s1)-1;i<=j;i++,j--)
{
if(s1[i]!=s1[j])
{
be=true;
break;
}
else
continue;
}
if(!be)
{
for(int i=0;i<strlen(s1);i++)
cout<<s1[i];
cout<<" is a palindromic number.\n";
return 0;
}
/*for(int i=0;i<strlen(s1);i++)
cout<<num1[i];
cout<<endl;
for(int i=0;i<strlen(s1);i++)
cout<<num2[i];
cout<<endl;
*/for(int i=0;s1[i]!='\0';i++)
cout<<s1[i];
cout<<" + ";
for(int i=0;s2[i]!='\0';i++)
cout<<s2[i];
cout<<" = ";
int add=0;
for(int i=strlen(s1)-1;i>=0;i--)
{
int sum=0;
if(i!=0)
{
sum=num1[i]+num2[i]+add;
num3[i]=sum%10;
add=sum/10;
}
else
num3[i]=num1[i]+num2[i]+add;
//cout<<num3[i];
}
//for(int i=0;i<strlen(s1);i++)
// cout<<num3[i];
int j=0;
for(int i=0;i<len1;i++)
{
cout<<num3[i];
if(num3[i]>=10)
{
s1[j++]=num3[i]/10+'0';
s1[j++]=num3[i]%10+'0';
}
else
s1[j++]=num3[i]+'0';
}
s1[j]='\0';
cout<<endl;
bool par=false;
for(int i=0;i<(strlen(s1)+1)/2;i++)
{
if(s1[i]==s1[strlen(s1)-1-i])
continue;
else
{
par=true;
break;
}
}
if(!par)
{
for(int i=0;s1[i]!='\0';i++)
cout<<s1[i];
cout<<" is a palindromic number.\n";
return 0;
}
}
cout<<"Not found in 10 iterations.\n";
return 0;
}
PAT乙级 1079.延迟的回文数
猜你喜欢
转载自blog.csdn.net/Ls_attack/article/details/79797916
今日推荐
周排行