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 分)难度: 一般 / 知识点: 高精度 回文数的主要内容,如果未能解决你的问题,请参考以下文章