题目描述
基本高精
写一个高精加或者高精乘都可以
C++ 代码
#include <iostream>
#include <algorithm>
using namespace std;
vector<int> mul(vector<int> &a, int b)
{
int t = 0;
vector<int> ans;
for (int i = 0; i < a.size() || t; i ++)
{
if (i < a.size()) t += a[i] * b;
ans.push_back(t % 10);
t /= 10;
}
return ans;
}
int main()
{
string str;
cin >> str;
vector<int> a, b, c, d;
for (int i = str.size() - 1; i >= 0; i --) a.push_back(str[i] - '0');
c = a; sort(c.begin(), c.end());
b = mul(a, 2); d = b;
sort(b.begin(), b.end());
//这里很懒 用了一个很烂很慢的排序去做比较 用哈希表可以加速到O(n) //懒得写了qwq
c == b ? puts("Yes") : puts("No");
for (int i = d.size() - 1; i >= 0; i --) cout << d[i];
}