题意:略。
思路:大整数相加,回文数判断。对首次输入的数也要判断其是否是回文数,故这里用do...while,而不用while。
代码:
#include <iostream> #include <string> #include <algorithm> using namespace std; bool judge(const string &str) { ,j=str.size()-; while(i<=j){ if(str[i]!=str[j]) return false; i++; j--; } return true; } string add(const string& s1,const string& s2) { string sum; ,temp,d; ;i>=;i--){ temp=carry+(s1[i]-'); d=temp%; carry=temp/; sum=,d+')+sum; } ) sum=,carry+')+sum; return sum; } int main() { string s1,s2; cin>>s1; ; do{ if(judge(s1)){ cout<<s1<<" is a palindromic number.\n"; break; } s2=s1; reverse(s2.begin(),s2.end()); string sum=add(s1,s2); cout<<s1<<" + "<<s2<<" = "<<sum<<"\n"; s1=sum; }while(--cnt); ) cout<<"Not found in 10 iterations.\n"; ; }