1079 延迟的回文数 测试点6
易错点
- 测试点6:输入给出一个不超过1000位的正整数,需要用数组存放这个数
代码
#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
bool is_Palindromic(string a){
for(int i=0;i<a.size()/2;i++){
if(a[i]!=a[a.size()-i-1]){
return 0;
}
}
return 1;
}
string reverse_diy(string a){
string b=a;
for(int i=0;i<a.size();i++){
b[i]=a[a.size()-i-1];
}
return b;
}
string to_Palindromic(string a){
int tmp=0;
string b=a;
string c=a;
b+=" ";
b[0]='0';
for(int i=0;i<a.size();i++){
b[a.size()-i]=((a[i]-'0')+(reverse_diy(a)[i]-'0')+tmp)%10+'0';
tmp=((a[i]-'0')+(reverse_diy(a)[i]-'0')+tmp)/10;
}
b[0]=tmp+'0';
if(b[0]=='0'){
b=reverse_diy(b);
for(int i=0;i<a.size();i++){
c[i]=b[i];
}
c=reverse_diy(c);
return c;
}
return b;
}
int main()
{
string s;
cin>>s;
int cnt=0;
while(is_Palindromic(s)==0){
cout<<s<<" + "<<reverse_diy(s)<<" = ";
s=to_Palindromic(s);
cout<<s<<endl;
cnt++;
if(cnt==10&&is_Palindromic(s)==0){
cout<<"Not found in 10 iterations.";
return 0;
}
}
cout<<s<<" is a palindromic number.";
return 0;
}
参考
(27条消息) A1089/B1035——Insert Merge插入与归并(测试点5、6)_Yoosii的博客-CSDN博客

浙公网安备 33010602011771号