zoukankan      html  css  js  c++  java
  • P1553 数字反转(升级版)

    P1553 数字反转(升级版)

    温馨提示

    1.在处理小数的时候注意处理末尾的0,反转后末尾不得有多余的0

       (判断的时候 s[ i ] ! = ' 0 '  判断的是字符)

    2.处理小数和分数的时候,要符号前后分别输出,

       flag标记了一次之后,下一次再用就要换一个值了

    代码

    #include<bits/stdc++.h>
    
    using namespace std;
    
    char s[100],ss[15];
    int kind=1,w1,w2,flag=0,n=0,k;
    
    int main()
    {
        gets(s);
        for(int i=0;s[i];i++)
        {
            if(s[i]=='.') { kind=2; w1=i-1; w2=i+1; break; }
            if(s[i]=='/') { kind=3; w1=i-1; w2=i+1; break; }
            if(s[i]=='%') { kind=4; break; }
        }
        
        switch(kind)
        {
            case 1 : 
               for(int i=strlen(s)-1;i>=0;i--)
               {
                     if(s[i]!='0')
                  {
                      flag=1;
                      cout<<s[i];
                  
                  }
                  if(flag&&s[i]=='0')
                    cout<<s[i];
                  if(i==0&&s[i]=='0')
                    cout<<s[i];
               }
                break;
                  
            case 2:
                for(int i=w1;i>=0;i--)
                {
                  if(s[i]!='0')
                  {
                      flag=1;
                      cout<<s[i];
                  }
                  if(flag&&s[i]=='0')
                    cout<<s[i];
                  if(i==0&&s[i]=='0')
                    cout<<s[i];
                }
                cout<<".";
                n=w2;
                for(int i=w2;i<=strlen(s)-1;i++)
               {
                     if(s[i]!='0')
                  {
                      flag=2;
                      continue;
                  }
                  if(flag!=2&&s[i]=='0'&&i!=(strlen(s)-1))
                  n++;
               }
               for(int i=strlen(s)-1;i>=n;i--)
                 cout<<s[i];
                  break;
                    
            case 3:
                for(int i=w1;i>=0;i--)
                {
                  if(s[i]!='0')
                  {
                      flag=1;
                      cout<<s[i];
                  }
                  if(flag&&s[i]=='0')
                    cout<<s[i];
                  if(i==0&&s[i]=='0')
                    cout<<s[i];
                }
                cout<<"/";
                for(int i=strlen(s)-1;i>=w2;i--)
               {
                     if(s[i]!='0')
                  {
                      flag=2;
                      cout<<s[i];
                  }
                  if(flag==2&&s[i]=='0')
                    cout<<s[i];
                  if(i==w2&&s[i]=='0')
                    cout<<s[i];
                  
               }
                  break;
            default:
                for(int i=strlen(s)-2;i>=0;i--)
               {
                     if(s[i]!='0')
                  {
                      flag=1;
                      cout<<s[i];
                  }
                  if(flag&&s[i]=='0')
                    cout<<s[i];
                  if(i==0&&s[i]=='0')
                    cout<<s[i];
               }
               cout<<"%"; 
        }
        
    }
  • 相关阅读:
    毕业设计进度:3月8日
    毕业设计进度:3月7日
    毕业设计进度:3月6日
    毕业设计进度:3月5日
    深拷贝、浅拷贝
    itertools模块中的product方法
    confusion_matrix函数的使用
    sklearn中的交叉验证(Cross-Validation)
    python pandas(ix & iloc &loc)
    Python: sklearn库——数据预处理
  • 原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/10959881.html
Copyright © 2011-2022 走看看