1024 Palindromic Number (25 分)难度: 一般 / 知识点: 高精度 回文数

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1024 Palindromic Number (25 分)难度: 一般 / 知识点: 高精度 回文数相关的知识,希望对你有一定的参考价值。


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

#include<bits/stdc++.h>
using namespace std;
string s; 
int k;
vector<int>A,B,C;
vector<int> add(vector<int> A,vector<int> B)
{
    vector<int> C;
    int t=0;
    for(int i=0;i<A.size()||i<B.size();i++)
    {
        if(i<A.size()) t+=A[i];
        if(i<B.size()) t+=B[i];
        C.push_back(t%10);
        t/=10;
    }
    if(t) C.push_back(1);
    return C;
}
void print(vector<int> A)
{
    for(int i=A.size()-1;i>=0;i--) cout<<A[i];
    cout<<endl;
}
bool check(vector<int> A)
{
    vector<int> B=A;
    reverse(B.begin(),B.end());
    if(A==B) return true;
    else return false;
}
int main(void)
{
    cin>>s>>k;
    for(int i=s.size()-1;i>=0;i--) A.push_back(s[i]-'0');
    C=A;
    for(int i=0;i<=k;i++)
    {
        if(check(C))
        {
            print(C); 
            cout<<i;
            return 0;
        }
        A=C; B=C; 
        reverse(B.begin(),B.end());
        C=add(A,B);
    }
    print(A);//最后输出A, C最后是多算了一次 
    cout<<k;
    return 0;
}

以上是关于1024 Palindromic Number (25 分)难度: 一般 / 知识点: 高精度 回文数的主要内容,如果未能解决你的问题,请参考以下文章

PAT 1024 Palindromic Number

1024 Palindromic Number (25分)

1024 Palindromic Number (25分)

1024. Palindromic Number (25)

PAT 1024. Palindromic Number

1024. Palindromic Number (25)