Monody_h @ 2024-07-23 21:23:39
#include<bits/stdc++.h>
using namespace std;
int main(){
long long x;
cin>>x;
long long y;
long long z;
bool a = true;
if(x>0){
y=x;
}
if(x==0){
cout<<"0"<<endl;
return 0;
}
if(x<0){
y=-x;
a=false;
}int i=10;
long long j=1;
for(long long k=10;k<=y;k*=10){
if(k*10>y) j=k;
}
while(y){
z+=(y%i)*j;
j/=10;
y/=10;
}
if(a==false) cout<<"-";
cout<<z;
return 0;
}
求问:我数据(包括它给的数据点)代入进去都是正确的,为什么过不了(还只有0分)
by haimingbei @ 2024-07-23 21:36:05
@Monody_h 循环将n反转,再判断,0要特判,其他就是easy的啦(AC,求关注)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,s=0;
bool f;
cin>>n;
if(n==0){
cout<<0;
return 0;
else if(n>0)f=1;
else if(n<0)f=0;
int x=abs(n);
while(x){
s=s*10+x%10;
x/=10;
}
if(f==1)cout<<s;
else cout<<"-"<<s;
return 0;
}
by LX_zxy @ 2024-07-23 21:39:02
@Monody_h 你把测试点1的数据发一下
by ZJYlove @ 2024-07-23 21:39:11
你可以试着再代进去一下 我代123就已经输出错了
by Monody_h @ 2024-07-23 21:39:46
@LX_zxy 实不相瞒,测试点一我过了(后面全错,一分没有)
by LX_zxy @ 2024-07-23 21:39:55
@ZJYabc2011 并没有
by Monody_h @ 2024-07-23 21:40:28
@ZJYabc2011 可是我这运行的123是对的啊
by ZJYlove @ 2024-07-23 21:40:39
#include<bits/stdc++.h>
using namespace std;
int main(){
long long x;
cin>>x;
long long y;
long long z;
bool a = true;
if(x>0){
y=x;
}
if(x==0){
cout<<"0"<<endl;
return 0;
}
if(x<0){
y=-x;
a=false;
}int i=10;
long long j=1;
for(long long k=10;k<=y;k*=10){
if(k*10>y) j=k;
}
while(y){
z+=(y%i)*j;
j/=10;
y/=10;
}
if(a==false) cout<<"-";
cout<<z;
return 0;
}
这样应该算最简单的了。。。
by LX_zxy @ 2024-07-23 21:41:39
@Monody_h 那就第二个测试点
by Monody_h @ 2024-07-23 21:42:24
@LX_zxy -290 -92(但我带进去也没问题啊)
by ZJYlove @ 2024-07-23 21:42:58
@Monody_h 但是我这里是把x,y,z定义成全局变量就可以了的 否则会输出一个很奇怪的数