读入的字符串一定一定要大于20(应该是最后一个是'\0'吧?)
#include<iostream>
#include<cstring>
using namespace std;
int main(){
char a[21],ans[30];//20不行但是21可以QAQ
cin>>a;
int book[10]={0},l=strlen(a),jin=0,flag=1;//数组要记得归零(不然是乱码QAQ)
for(int i=0;i<l;i++)book[a[i]-'0']++;
for(int i=l-1;i>=0;i--){
book[(a[i]-'0')*2%10+jin]--;
ans[i]=(a[i]-'0')*2%10+jin+'0';
jin=(a[i]-'0')*2/10;
}
if (jin)printf("No\n1");
else{
for(int i=0;i<10;i++){
if (book[i]<0){
printf("No\n");
flag=0;
break;
}
}if (flag) printf("Yes\n");
}
for(int i=0;i<l;i++)printf("%c",ans[i]);
return 0;
}