【luogu P1307 数字反转】 题解

题目链接:https://www.luogu.org/problemnew/show/P1307

刚入门的一道字符串模拟,分四种情况讨论来做比较好。

 1 #include
 2 #include
 3 #include
 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 }

 

转载于:https://www.cnblogs.com/MisakaAzusa/p/8470106.html

你可能感兴趣的:(【luogu P1307 数字反转】 题解)