#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
int i, k;
char in[23];
int num[23] = {0};
int map[10] = {0};
int map2[10] = {0};
scanf("%s", in);
k = strlen(in);
for(i = 0; i < k; i++) {
num[i] = in[i] - '0';
}
for (i = 0; i < k; i++) {
map[num[i]] = 1;
}
for (i = 0; i < k; i++) {
num[i] = num[i] * 2;
}
for (i = k - 1; i >= 1; i--) {
if (num[i] >= 10) {
num[i] = num[i] % 10;
num[i - 1]++;
}
}
int carry = 0;
if (num[0] >= 10){
num[0] = num[0] % 10;
carry = 1;
map2[1] = 1;
}
for (i = 0; i < k; i++) {
map2[num[i]] = 1;
}
bool flag = true;
for (i = 0; i < 10; i++) {
if (map[i] != map2[i]) {
printf("No\n");
flag = false;
break;
}
}
if (flag == true)
printf("Yes\n");
if (carry == 1) printf("1");
for (i = 0; i < k; i++)
printf("%d", num[i]);
printf("\n");
return 0;
}
【PAT甲级】1023. Have Fun with Numbers (20)
最新推荐文章于 2022-03-03 20:54:29 发布