题解 CF514A 【Chewbacca and Number】

先发翻译:
给你一个数x($ x<={10}^18$),可以对它的每一位数y进行翻转(将其替换为9-y),也可以不替换。求最小

正数

这个请管理员放到题面上。


题解


这题其实不难,只需按题意模拟即可。

但是

有坑点!

那就是需要特判的情况:

首位为0(包括整个数为0的情况)

很明显,这种情况是不符合正数这一条件的

所以我在题面中标记了这个坑

注意了这点,代码就很好写了

上巨短代码:

1
2
3
4
5
6
7
8
9
#include <bits/stdc++.h>
using namespace std;
char a[20];
int main(void){
scanf ("%s",a);
for (int i=0;a[i];i++)a[i]=min(a[i],char(9+'0'-a[i]+'0'));
if (a[0]=='0')a[0]='9';
printf ("%s",a);
}