PAT1136 A Delayed Palindrome && 1024 Palindromic Number 回文数(字符串模拟)

两题相似度99%,回文过程其实就是翻转字符串,改下输入输出即可

 

PAT1136 A Delayed Palindrome 

首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文数,就重复这个逆转再相加的操作,直到一个回文数出现。

如果一个非回文数可以变出回文数,就称这个数为延迟的回文数。

给定任意一个正整数,本题要求你找到其变出的那个回文数。

#include
#define rep(i,a,n) for(int i=a;i>s;
    int t=10;
    int flag=0;
    if(check(s)) return 0;
    while(t--){
        s=gao(s);
        cout<

 

1024 Palindromic Number 

有一处坑点(虽然题目前几句就说了,但是我还是没注意): 如果输入是一位数,那么一定是回文数

#include
#define rep(i,a,n) for(int i=a;i=0;i--){
        int sum=s[i]-'0'+ t[i]-'0'+last;
        ans[i]=(sum%10)+'0';
        last=sum/10;
    }
    if(last) ans="1"+ans;
    return ans;
}
bool check(string s){
    string t=s;
    reverse(t.begin(),t.end());
    if(t!=s) return false;
    return true;
}
string s;
int k;
int main(){
    cin>>s>>k;
    if(check(s)||s.length()==1){
        cout<

 

你可能感兴趣的:(PTA,字符串处理)