@[you2306](/user/1024479) 有什么特殊用意吗?
如果有,wssb;如果没有,jbl。
by zym0325 @ 2023-07-05 16:36:58
@[you2306](/user/1024479) 这么长一串有必要吗
如果没有,那btd jbl
by Rieman_sum @ 2023-07-05 16:40:45
这个数据根本卡不了任何已 AC 的代码
by zhuweiqi @ 2023-07-05 16:42:02
@[you2306](/user/1024479) 你把这个数据hack的错误代码发出来。
by cff_0102 @ 2023-07-05 16:49:39
@[you2306](/user/1024479) 有哪些代码会被 hack?
by 小粉兔 @ 2023-07-05 22:18:55
@[小粉兔](/user/10703) 因为9999999999999999998超过了long long的范围,使用long long来实现数字反转会出错。当前的测试用例使用long long来实现数字反转会通过。
```
long long reverse_integer(long long n) {
long long result = 0;
while(n>0) {
result = result*10 + n%10;
n/=10;
}
return result;
}
```
by you2306 @ 2023-07-09 18:52:36
有问题的完整代码如下:
```cpp
// P1553 数字反转(升级版)
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
long long reverse_integer(long long n) {
long long result = 0;
while(n>0) {
result = result*10 + n%10;
n/=10;
}
return result;
}
int main() {
string s;
getline(cin, s);
stringstream ss = stringstream(s);
if(s.find('.')!=s.npos) {
long long i1, i2;
ss >> i1;
ss.ignore(1);
ss >> i2;
cout << reverse_integer(i1) << "." << reverse_integer(i2);
} else if(s.find('/')!=s.npos) {
long long i1, i2;
ss >> i1;
ss.ignore(100,'/');
ss >> i2;
cout << reverse_integer(i1) << "/" << reverse_integer(i2);
} else if(s.find('%')!=s.npos) {
long long i;
ss >> i;
cout << reverse_integer(i) << "%";
} else {
reverse(s.begin(), s.end());
int p = s.find_first_not_of('0');
if(p!=s.npos) cout << s.substr(p);
else cout << "0";
}
cout << endl;
}
```
by you2306 @ 2023-07-09 18:54:23