1079 延迟的回文数 测试点6

易错点

  1. 测试点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博客

posted @ 2022-07-17 10:34  qwasdasd  阅读(39)  评论(0)    收藏  举报