1 #include2 #include 3 int occur_table[12]={ 0}; 4 bool fill_table(char *p) 5 { 6 while(*p){ 7 occur_table[(*p)-'0']++; 8 p++; 9 }10 return 0;11 }12 int main()13 {14 char ori_num[22];15 scanf("%s",ori_num);16 fill_table(ori_num);17 int c=0;18 int i;19 for(i=strlen(ori_num)-1;i>=0;i--){20 int temp=(ori_num[i]-'0')*2+c;21 ori_num[i]=temp%10+'0';22 c=temp/10;23 }24 if(c){25 printf("No\n");26 printf("%d",c);27 printf("%s\n",ori_num);28 return 0;29 } 30 for(i=strlen(ori_num)-1;i>=0;i--){31 if(occur_table[ori_num[i]-'0']--<=0){32 printf("No\n");33 printf("%s\n",ori_num);34 break;35 }36 }37 if(i!=-1) return 0;38 printf("Yes\n");39 printf("%s\n",ori_num);40 return 0;41 }