1024 Palindromic Number (25分)
阿新 • • 發佈:2020-08-04
高精加
#include<iostream> #include<vector> #include<algorithm> using namespace std; int check(vector<int> &a){ int l = 0, r = a.size() - 1; while(l < r){ if(a[l] != a[r]) return 0; ++l, -- r; } return 1; } void add(vector<int> &a, vector<int> &b){ vector<int> res; 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]; res.push_back(t % 10); t /= 10; } if(t) res.push_back(1); a = res; } int main(){ string s; int k; cin >> s >> k; vector<int> a; for(int i = s.size() - 1; i >= 0; i --) a.push_back(s[i] - '0'); int cnt = 0; for(int i = 0; i < k && !check(a); i ++, cnt ++){ auto b = a; reverse(b.begin(), b.end()); add(a, b); } for(int i = a.size() - 1; i >= 0; i --) cout << a[i]; puts(""); cout << cnt << endl; return 0; }