yuki_lyq @ 2024-08-11 17:09:53
#include<iostream>
using namespace std;
long long a;
bool flag;
int main(){
cin>>a;
if(a==0){
cout<<0;
return 0;
}
if(a<0){
cout<<'-';
a=0-a;
}
while(a){
if(a%10) cout<<a%10;
a/=10;
}
return 0;
}
by ATION001 @ 2024-08-11 17:16:25
@yuki_lyq
这就可以hack 掉好吧。
我的代码:
#include<bits/stdc++.h>
using namespace std;
long long to_int(string f){//去前导零
long long sum=0;
for(auto x:f){
sum=sum*10+(x-'0');
}
return sum;
}
string s;
int main(){
cin>>s;
if(s[0]=='-'){//为负数
string p=s.substr(1,s.size());//把-去掉
reverse(p.begin(),p.end());
cout<<'-'<<to_int(p);
}else{
reverse(s.begin(),s.end());//反转
cout<<to_int(s);
}
}
by are_you_sure @ 2024-08-11 17:18:27
#include<iostream>
#include<cstring>
using namespace std;
int main(){
string a;
bool f=0,qd0=1;
cin>>a;
if(a[0]=='-'){
cout<<'-';
f=1;
}
if(a.length()==1){
cout<<a;
}
for(int i=(int)a.length()-1;i>=0;i--){
if(a[i]-'0'){
qd0=0;
}
if(qd0 || a[i]=='-'){
continue;
}
cout<<a[i];
}
}
by ATION001 @ 2024-08-11 17:19:45
@yuki_lyq 你的代码:
#include<iostream>
using namespace std;
long long a;
bool flag;
int main(){
cin>>a;
if(a==0){
cout<<0;
return 0;
}
if(a<0){
cout<<'-';
a=0-a;
}
while(a){
if((!(a%10))&&!flag){
a/=10;
continue;
}
if(a%10){
flag=1;
}
cout<<a%10;
a/=10;
}
return 0;
}
by are_you_sure @ 2024-08-11 17:19:48
@yuki_lyq @yuki_lyq @yuki_lyq @yuki_lyq @yuki_lyq @yuki_lyq
by ATION001 @ 2024-08-11 17:20:35
你的程序为0就不输出了,但没考虑它在最外面还是在数字中间。
by are_you_sure @ 2024-08-11 17:20:55
sorry,电脑卡了,点一下没出来,然后多点了几下(bushi
by ATION001 @ 2024-08-11 17:42:09
.
by yuki_lyq @ 2024-08-11 17:50:14
@are_you_sure @ATION001 谢大神,但我想知道我是哪里没判断到?
by ATION001 @ 2024-08-11 21:07:21
@yuki_lyq 你直接把不为0的情况才输出,而实际上中间的0也需要输出(去前导零不是把所有0都去掉)。