#include<iostream>//16分。。。。 中间三个测试点过不去!
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
char num[1005];
int main(){
int i=0,n=0;
cin>>num;
n=10;
//-------------判断给出的数是不是回文数
int len;
for(i=0;num[i]!='\0';i++){
len=i;
}
i=0;int j=len;
while(i<j){
if(num[i]!=num[j])
{break;}
i++;j--;
if(i>j) {
for(i=0;num[i]!='\0';i++){
printf("%c",num[i]);
}
printf(" is a palindromic number.\n");
return 0;}
}
//-------判断给出的数是不是回文数
while(n--){
for(i=0;num[i]!='\0';i++){
printf("%c",num[i]);
}
int last=i-1;
printf(" + ");
for(int j=last;j>=0;j--){
printf("%c",num[j]);
}
printf(" = ");
char res[1005];
int k=0,tmp=0,jin=0,m=0;
while(num[k]!='\0'&&last>=0){
tmp=num[k]-'0'+num[last]-'0'+jin;
// cout<<tmp<<endl;
k++;last--;
jin=tmp/10;
res[m++]=tmp%10+'0';
}
if(jin) res[m++]='1';
reverse(res,res+m);
for(i=0;i<m;i++){
printf("%c",res[i]);
}
cout<<endl;
i=0; j=m-1;
while(i<j){
if(res[i]!=res[j])
{break;}
i++;j--;
if(i>j) {
for(i=0;i<m;i++){
printf("%c",res[i]);
}
printf(" is a palindromic number.\n");
return 0;}
}
for(i=0;i<m;i++){
num[i]=res[i];
}
// printf("%s",num);
}
printf("Not found in 10 iterations.\n");
return 0;
}
B1079 延迟的回文数
最新推荐文章于 2020-08-16 13:18:27 发布