一苇渡江 @ 2016-01-05 17:04:58
#include<iostream>
int a[30];
using namespace std;
int main()
{
int i,j,n;
cin>>n;
if(n>0)
{
for(i=1;i<=20;i++)
{
if(n>0)
{
a[i]=n%10;
n=n/10;
}
else if(n==0)
a[i]==false;
}
for(i=1;i<=20;i++)
{
if(a[i]>0&&a[i]!=false)
cout<<a[i];
else if(a[i]==0&&i!=1&&a[i]!=false)
cout<<a[i];
}
}
else if(n==0)
cout<<n;
else
{
j=-1*n;
for(i=1;i<=20;i++)
{
if(j>0)
{
a[i]=j%10;
j=j/10;
}
else if(j==0)
a[i]==false;
}
cout<<"-";
for(i=1;i<=20;i++)
{
if(a[i]>0&&a[i]!=false)
cout<<a[i];
else if(a[i]==0&&i!=1&&a[i]!=false)
cout<<a[i];
}
}
return 0;
}
by PolyLoger @ 2016-02-10 11:15:17
#include<stack>
#include<cstdio>
#include<cstring>
using namespace std;
int n;
char a[100];
stack<char>G;
int main(void)
{
scanf("%s",a);
if(strcmp(a,"0")==0){
printf("0");
}
n=strlen(a);
for(int i=0;i<n;i++)
G.push(a[i]);
if(a[0]=='-')
printf("-");
while(G.empty()==0&&G.top()=='0')
G.pop();
while(G.empty()==0){
if(G.top()=='-'||G.top()=='+'){
G.pop();
continue;
}
printf("%c",G.top());
G.pop();
}
return 0;
}