一次通过了
虽然是第一题简单些
没看别人代码,自己写的有些笨
泪流满面
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
char arr[22];
int brr[22], cnt;
int key1[10], key2[10];
int main(){
cin >> arr;
int l = strlen(arr);
for(int i=0; i<l; i++){
key1[arr[i]-'0']++;
brr[i] = (arr[i] - '0') * 2;
}
for(int j=l-1; j>=0; j--){
brr[j] += cnt;
cnt = 0;
if(brr[j] >= 10){
cnt = brr[j] / 10;
if(j != 0) {
brr[j] = brr[j] % 10;
key2[brr[j]]++;
}
else {
int c = brr[j];
while(1){
key2[c%10]++;
c = c/10;
if(c == 0) break;
}
}
}else key2[brr[j]]++;
}
int flag = 0;
for(int t=0; t<10; t++){
if(key1[t] != key2[t]){
printf("No\n");
flag = 1;
break;
}
}
if(flag == 0) printf("Yes\n");
for(int k=0; k<l; k++) cout << brr[k] ;
return 0;
}