comcom @ 2016-10-05 11:08:11
思路想了好几遍了但不知道为什么一直错 一直都只有二十分
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
using namespace std;
int main()
{
int tmp,l,j;
string s;
cin>>s;
if(s[0]==0)
{
cout<<0<<endl;
}
else if(s[0]=='-')
{
j=1;
cout<<'-';
l=s.size()-1;
for(int i=1;i<=l/2;i++)
{
tmp=s[i];
s[i]=s[l-i+1];
s[l-i+1]=s[i];
}
while(s[j]==0)
{
j++;
}
for(int i=j;i<=l;i++)
{
cout<<s[i];
}
}
else
{
l=s.size();
j=0;
for(int i=0;i<=l/2-1;i++)
{
tmp=s[i];
s[i]=s[l-i-1];
s[l-i-1]=tmp;
}
while(s[j]==0)
{
j++;
}
for(int i=j;i<l;i++)
{
cout<<s[i];
}
}
return 0;
}
by 1jia1 @ 2016-10-05 18:31:22
孩子,把第一个if去掉@comcom
by 天·三玖 @ 2016-10-05 18:33:08
孩子,是把<<endl去掉@chenleyu
by 天·三玖 @ 2016-10-05 18:35:20
还有,你为什么要左右交换?直接倒着输出,将0去掉嘛。还有负号啊
by comcom @ 2016-10-05 18:38:37
@chenleyu
@LLCS
欸两位。。。
其实去掉之后也没什么卵用的qwq
现在找到bug了 然后换成倒着输了 主要是字符和数字的转换问题。
by 1jia1 @ 2016-10-05 19:50:56
@LLCS 我有发这句话吗?是我号被盗了吗?我赶紧改密码,新密码私信你
by white @ 2016-10-15 13:24:45
我是这样写的
#include <iostream>
using namespace std;
long n;
int main(){
cin>>n;
if(n==0) cout<<0<<endl;//处理特殊项0
else{
if(n<0){cout<<'-';n=-1*n;}//处理正负号
while(n%10==0) n/=10;//处理低位0
while(n){cout<<n%10;n/=10;}
}
return 0;
}