difficultlong @ 2024-08-31 12:32:25
#include<bits/stdc++.h>
using namespace std;
long long a;
long long c[20];
bool flag=true;
int main(){
scanf("%lld",&a);
if(a<0){
flag=false;
}
if(a==0){
printf("0");
return 0;
}
long long n=abs(a);
long long i=1;
while(n>0){
c[i]=n%10;
n/=10;
if(!c[i]){
continue;
}
i++;
}
if(!flag){
printf("-");
}
for(int j=1;j<=i-1;j++){
printf("%lld",c[j]);
}
return 0;
}
这个明明样例也能通过,为啥出错了
by Yxy7952 @ 2024-08-31 12:34:20
@bianchengzai
像太复杂了,一个while循环就能解决,重新写一下吧
by Deric456 @ 2024-08-31 12:37:39
可以搞成string类型的,从后往前遍历,输出符号再把开头0去掉@bianchengzai
by Deric456 @ 2024-08-31 12:43:42
哦对0要特殊判断
by hjxxlsx @ 2024-08-31 12:53:43
有时样例测过是对的,不过自己也要测一下其他数据,我就是这样,明明样例对,但还是没有过,因此我长记性了,每次都要测好几个样例才敢提交,这是我的观点,如果有什么不对,请您私信我,因为我也是个小白,谢谢
by hjxxlsx @ 2024-08-31 12:54:30
@Deric456 是的,但还要加特殊判断
by difficultlong @ 2024-08-31 14:12:59
@yixingyou 可是我真的不知道错在哪里 究竟该怎么办
by Yxy7952 @ 2024-08-31 14:16:00
@bianchengzai
注意!我不是故意贴AC代码,而是这道题确实很简单,理解一下代码就行了:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,sum=0,yu=0;
cin>>a;
while(a!=0){
yu=a%10;
sum=sum*10+yu;
a=a/10;
}
cout<<sum;
return 0;
}