题目链接:https://www.luogu.org/problemnew/show/P1307
刚入门的一道字符串模拟,分四种情况讨论来做比较好。
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int main() 6 { 7 char a[1001]; 8 cin>>a; 9 10 int len=strlen(a); 11 12 if(a[0]==‘-‘&&a[len-1]!=‘0‘) 13 { 14 cout<<"-"; 15 for(int i=len-1;i>0;i--) 16 cout<<a[i]; 17 } 18 // 如果是负数,但没有前导0 19 20 if(a[0]!=‘-‘&&a[len-1]!=‘0‘) 21 { 22 for(int i=len-1;i>=0;i--) 23 cout<<a[i]; 24 } 25 // 没有前导0,也没有负号 26 27 if(a[0]!=‘-‘&&a[len-1]==‘0‘) 28 { 29 int k=0; 30 for(int i=len-1;i>0;i--) 31 if(a[i]==‘0‘) 32 k++; 33 else 34 break; 35 for(int j=len-1-k;j>=0;j--) 36 cout<<a[j]; 37 } 38 // 有前导0,但不是负数 39 40 if(a[0]==‘-‘&&a[len-1]==‘0‘) 41 { 42 int k=0; 43 for(int i=len-1;i>0;i--) 44 if(a[i]==‘0‘) 45 k++; 46 else 47 break; 48 cout<<"-"; 49 for(int j=len-1-k;j>0;j--) 50 cout<<a[j]; 51 } 52 // 既有负号又有前导0 53 54 return 0; 55 }