zoukankan      html  css  js  c++  java
  • PAT (Advanced Level) 1082 Read Number in Chinese

    题解

          模拟。先将原始字符串处理 [ op(string &s) ] 一下就好。

    代码

    #include<bits/stdc++.h>
    using namespace std;
    char ch[15][5]={{"ling"},{"yi"},{"er"},{"san"},{"si"},{"wu"},{"liu"},{"qi"},{"ba"},{"jiu"},{"shii"}};
    char dw[5][5]={{"Shi"},{"Bai"},{"Qian"},{"Wan"},{"Yi"}};
    void op(string &s);
    int main()
    {
        string s;
        int i,len,flag=0;
        cin>>s;
        if(s[0]=='-') 
        {
            printf("Fu");
            s=s.substr(1,string::npos);
            flag=1;
        }
        op(s);
        for(i=0,len=s.size();i<s.size();i++)
        {
            if(s[i]=='#') ;
            else if(s[i]=='0') printf("%s%s",flag==1?" ":"",ch[0]),flag=1;
            else
            {
                printf("%s%s",flag==1?" ":"",ch[s[i]-'0']),flag=1;
                if((len-i==2)||(len-i==6)) printf("%s%s",flag==1?" ":"",dw[0]),flag=1;
                else if((len-i==3)||(len-i==7)) printf("%s%s",flag==1?" ":"",dw[1]),flag=1;
                else if((len-i==4)||(len-i==8)) printf("%s%s",flag==1?" ":"",dw[2]),flag=1;
            }
            if(len-i==5) printf("%s%s",flag==1?" ":"",dw[3]),flag=1;
            else if(len-i==9) printf("%s%s",flag==1?" ":"",dw[4]),flag=1;
        }
        system("pause");
        return 0;
    }
    void op(string &s)
    {
        int i,len,index;
        string str="0";
        len=s.size()-1;
        while(len)
        {
            if(s[len]=='0') len--;
            else break;
        }
        s.replace(len+1,string::npos,s.size()-len-1,'#');
        for(i=2;i<=9;i++)
        {
            str+="0";
            while(s.find(str)!=s.npos)
            {
                index=s.find(str);
                s.replace(s.find(str),i,i-1,'#');
                s.insert(index+1,1,'0');
            }
        }
    }
  • 相关阅读:
    并查集-B
    ->的用法
    PTA-1042 字符统计
    PAT 1040有几个PAT
    assembly x86(nasm)修改后的日常
    python接口自动化之操作常用数据库mysql、oracle
    os模块常用方法
    python 多线程编程并不能真正利用多核的CPU
    连接mysql数据库
    python之用yagmail模块发送邮件
  • 原文地址:https://www.cnblogs.com/VividBinGo/p/12220899.html
Copyright © 2011-2022 走看看