AcWing 1500. 趣味数字
原题链接
简单
作者:
xxxxuu
,
2021-05-25 22:43:35
,
所有人可见
,
阅读 252
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
string s;
vector<int> a;
cin>>s;
for(int i=s.size()-1;i>=0;i--){
a.push_back(s[i]-'0');
}
int t=0;//进位位,有进位时t=1,无进位时t=0
vector<int> b;
for(int i=0;i<a.size();i++){
int sum=a[i]+a[i]+t;
b.push_back(sum%10);//逢10进1
t=sum/10;//逢10进1
}
if(t) b.push_back(t);//最高位的进位为1,则还要进一位
vector<int> c=b;
//排序后便于进行逐一比较
sort(a.begin(),a.end());
sort(c.begin(),c.end());
if(a==c) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
for(int i=b.size()-1;i>=0;i--){
cout<<b[i];
}
return 0;
}