一直60分好惨啊!!!帮帮这个小傻冒啊啊啊

P1553 数字反转(升级版)

我这么菜,怎么会这种题呢?
by Dasknight @ 2019-04-30 20:35:01


@[zssxbb](/space/show?uid=197829) 这是什么写法~~这题有这么难写吗~~
by 我不认识你 @ 2019-04-30 20:43:19


@[我不认识你](/space/show?uid=111380) 我比较菜嘛。所以就按照自己傻逼的写法 嘻嘻嘻
by zssxbb @ 2019-04-30 21:41:33


帮你改了下 ```cpp #include<iostream> #include<stdio.h> using namespace std; string s; int main() { cin >> s; int k = 0; int j = 0; int len = s.length(); for (; j < len; j++) { if (s[j] == '.') { k = 1; break; } else if (s[j] == '/') { k = 2; break; } else if (s[j] == '%') { k = 3; break; } else { continue; } } switch (k) { case 1: { int n = j - 1; while (n!=-1&&s[n] == '0') { n--; } if (n == -1)printf("0"); for (int i = n; i >= 0; i--) { printf("%c", s[i]); } printf("."); n = j + 1; int m = len - 1; while (n!=m+1&&s[n] == '0') { n++; } if (n == m + 1)printf("0"); /*while (s[m] == '0') { m--; }*/ for (int i = m; i >= n; i--) { printf("%c", s[i]); } } break; case 2: { int n = j - 1; while (n!=-1&&s[n] == '0') { n--;//n--会出现n=-1的情况 } if (n == -1)printf("0"); for (int i = n; i >= 0; i--) { printf("%c", s[i]); } printf("/"); n = j + 1; int m = len - 1; /*while (s[n] == '0') { n++; }*/ while (m!=n-1&&s[m] == '0') { m--; } if (m == n - 1)printf("0"); for (int i = m; i >= n; i--) { printf("%c", s[i]); } } break; case 3: { int n = 0; /*while (s[n] == '0') { n++; }*/ int m = len - 2; while (m!=-1&&s[m] == '0') { m--; } if (m == -1)printf("0"); for (int i = m; i >= n; i--) { printf("%c", s[i]); } printf("%c", s[len - 1]); } break; default: { int n = len - 1; while (n!=-1&&s[n]=='0') {//s[n]是字符不能那样判断 n--; } if (n == -1)printf("0"); for (int i = n; i >= 0; i--) { printf("%c", s[i]); } } } return 0; } ```
by tomsteve @ 2019-05-05 18:03:32


针对一些特殊值,比如000,00.00,000/000,010/010,00100/00100,00100.00100,00.00等
by tomsteve @ 2019-05-05 18:05:13


|