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<<"%"; 
        }
        
    }
  • 相关阅读:
    大象起舞:用PostgreSQL解海盗分金问题
    python 导入模块
    python socket 发送ESB报文
    python socket超时
    ISCC2018部分WriteUp
    查看SQL执行计划的方法及优劣
    jquery遮罩层
    IE9 JS不执行,打开F12就没问题了
    BigDecimal 01
    BigDecimal 01
  • 原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/10959881.html
Copyright © 2011-2022 走看看