PAT甲级1024题(回文数)


1.题目介绍

1024

2.考察点,难度

高精度题,string字符串处理,难度易

3.解题代码

#include <bits/stdc++.h>
using namespace std;

string add(string a){

    string b=a,c="";
    int flag=0;
    reverse(a.begin(),a.end());
    for(int i=0;i<a.length();i++){
        c+=to_string(((a[i]-'0')+(b[i]-'0')+flag)%10);
        flag=((a[i]-'0')+(b[i]-'0')+flag)/10;
    }
    if(flag)    c+=to_string(flag);
    return c;
}

int main(){

    string s;
    int step;
    cin>>s>>step;
    for(int i=0;i<=step;i++){
        string p=s;
        reverse(p.begin(),p.end());
        if(s==p){
            cout<<s<<endl;
            cout<<i<<endl;
            break;
        }else{
            if(i==step){
                reverse(s.begin(),s.end());
                cout<<s<<endl;
                cout<<i<<endl;
                break;
            }
            s=add(s);
        }
    }
    return 0;
}

4.原题地址

https://pintia.cn/problem-sets/994805342720868352/problems/994805476473028608


文章作者: Peyton
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Peyton !
  目录