数据有点水

P1307 [NOIP2011 普及组] 数字反转

qiutongxue @ 2021-01-06 10:44:57

#include <iostream>
#include <vector>
#include <cstring>
#include <cmath>
#include <queue>
#include <set>
#include <map>
#include <algorithm>
#define fi first
#define se second
#define INF 0x3f3f3f3f

using namespace std;

typedef long long LL;
typedef pair<int , char> PII;

int main()
{
    string s;
    cin >> s;

    int t = 0;
    if(s.front() == '-' || s.front() == '+') t = 1;

    while(s.back() == '0') s.pop_back();

    reverse(s.begin() + t , s.end());
    cout << s << endl;
}

这份代码如果输入是:-0,输出是:-,显然不对,应该输出-0才对,但是能ac

应该在第二个while那里加一个判断才对

while(s.size() > 1 + t && s.back() == '0')  s.pop_back();

by MSqwq @ 2021-01-06 12:51:50

但这是NOIP真题诶....数据水也没办法啊qwq


by w23c3c3 @ 2021-01-06 13:06:07

-0不算标准整数吧


by 许江一墨 @ 2021-02-23 13:53:11

事实上不应该写-0而是0吧,个人认为-0不符合数学逻辑。 不过输入0什么都不会输出倒是真的。


by Dreeick @ 2022-12-26 13:52:41

0既不是正数也不是负数,它介于这两者之间,所以-0就是0,没有必要去区分-00


|