A. Chewbaсca and Number

感觉这道题巨坑,如果题中加粗标出来的输出得是正数算小坑的话。有个巨坑就是

the final number shouldn't start with a zero.

答案不能有前导0,我觉得这句话有两种理解:

比如将9999变为9,算不算有前导0呢?把9当做一位数就没有前导0,当做4位数就有前导0

好吧,根据“剧情需要”,看来是被当做有前导0的

所以,这道题的解法就是除了最高位如果是9的话,把其他所有大于等于5的数字t,全部转变为9-t

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 const int maxn = 25;
 6 char s[maxn];
 7 
 8 int main()
 9 {
10     scanf("%s", s);
11     int l = strlen(s);
12     for(int i = 0; i < l; ++i)
13     {
14         if(i == 0 && s[i] == '9') continue;
15         if(s[i] > '4') s[i] = '0' + '9' - s[i];
16     }
17     printf("%s\n", s);
18 
19     return 0;
20 }
代码君

相关文章: