输入使用字符串,直接使用哈希数组
#include <iostream>
#include <string.h>
#include <memory.h>
using namespace std;
char num[25];
char num2[25];
int hash1[10];
int main(){
int i,j;
scanf("%s",num);
memset(hash1,0,sizeof(hash1));
int n=strlen(num);
int temp=0;
j=0;
for(i=n-1;i>=0;i--)
{ int t=num[i]-'0';
hash1[t]++;
t=t*2+temp;
temp=t/10;
t=t%10;
num2[j]=t+'0';
j++;
hash1[t]--;
}
if(temp>0)
{ num2[j]=temp+'0';
j++;
}
for(i=0;i<10;i++)
if(hash1[i]!=0)
{ cout<<"No";break;}
if(i==10)cout<<"Yes";
cout<<endl;
for(i=j-1;i>=0;i--)
cout<<num2[i];
cout<<endl;
return 0;
}