FiammettaX @ 2023-09-16 15:00:05
#include<iostream>
#include<string>
using namespace std;
int main()
{
int a;
bool fu=false;
cin>>a;
while(a%10==0)
{
a/=10;
}
if(a<0)
{
a=-a;
fu=true;
}
string strTest=to_string(a); //转成字符串
if(fu)
{
cout<<"-";
}
for(int i=strTest.size();i>=0;i--)//从字符串尾部开始输出
{
cout<<strTest[i];
}
}
在自己的dev c++上测试都是成功的,但是交上去就是一分没有,测试发现输入的数据在十位数以上才会出错,但是题目的数据范围在十位数以内呀,求大佬解惑!!!
by zhengenzhe @ 2023-09-16 15:27:14
开long long?
by __xux__ @ 2023-09-16 15:28:31
不开long long见祖宗
by FiammettaX @ 2023-09-17 14:06:15
@cool_xu @zhengenzhe 呜呜呜a的类型改成long long了,确实大于十位数的数也能成功反转了,但还是零分QAQ
by zhengenzhe @ 2023-09-17 14:48:21
第一开个long long 首先最后一个循环改成 for(int i=strTest.size()-1;i>=0;i--){ cout<<strTest[i]-'0'; } 在在输入后特判一下a==0 在输入a后 if(a==0){ cout<<0; return 0; } 就可以了
by FiammettaX @ 2023-09-17 16:29:39
@zhengenzhe 过了!感谢大佬!!!输出居然必须要转成整数类型,原来洛谷还能检测输出类型的吗,我还以为输出和示例的输出看起来一样就行了