代码已通过测试
#include#include #include using namespace std; vector result; vector compare; vector back; void getMul(string target) { int c = 0; for (int i = target.size()-1; i>=0; i--) { int temp = target[i] - '0'; compare.push_back(temp); temp = temp * 2 + c; if (temp > 9) { temp = temp - 10; c = 1; } else c = 0; result.push_back(temp); back.push_back(temp); } if (c == 1) { result.push_back(1); back.push_back(1); } return; } int main() { string target; cin >> target; getMul(target); int flag = 1; sort(result.begin(),result.end()); sort(compare.begin(), compare.end()); if (compare.size() < result.size()) flag = 0; else { int size = compare.size(); for (int i = 0; i < size; i++) { if (compare[i] != result[i]) { flag = 0; break; } } } if (flag == 0) cout << "No" << endl; else cout << "Yes" << endl; for (int i = back.size() - 1; i >= 0; i--) { cout << back[i]; } return 0; }
过测试



