• 【PAT甲级】1082 Read Number in Chinese (25 分)


    题意:

    输入一个九位整数,输出它的汉字读法(用拼音表示)。

    trick:

    字符串数组""其实会输出一个空格,而不是什么都不输出,导致测试点0和4格式错误。

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int num[17];
     5 string united[17]={"","yi","er","san","si","wu","liu","qi","ba","jiu"};
     6 string unit[17]={"","","Shi","Bai","Qian","Wan","Shi","Bai","Qian"};
     7 int main(){
     8     ios::sync_with_stdio(false);
     9     cin.tie(NULL);
    10     cout.tie(NULL);
    11     int x;
    12     cin>>x;
    13     if(x<0){
    14         cout<<"Fu ";
    15         x=-x;
    16     }
    17     else if(x==0){
    18         cout<<"ling";
    19         return 0;
    20     }
    21     int tamp=1;
    22     for(int i=1;i<=8;++i)
    23         tamp*=10;
    24     for(int i=9;i;--i){
    25         num[i]=x/tamp;
    26         x%=tamp;
    27         tamp/=10;
    28     }
    29     int space=0;
    30     if(num[9])
    31         cout<<united[num[9]]<<" Yi",space=1;
    32     int pos=0;
    33     for(int i=8;i;--i)
    34         if(num[i]){
    35             pos=i;
    36             break;
    37         }
    38     int ling=0;
    39     if(num[9]&&pos<8)
    40         ling=1;
    41     for(int i=pos;i;--i){
    42         if(num[i]){
    43             if(space)
    44                 cout<<" ",space=0;
    45             if(ling)
    46                 cout<<"ling",ling=0,space=1;
    47             if(space)
    48                 cout<<" ",space=0;
    49             cout<<united[num[i]],space=1;
    50             if(i!=5&&i!=1){
    51                 if(space)
    52                     cout<<" ",space=0;
    53                 cout<<unit[i],space=1;
    54             }
    55         }
    56         else if(!ling&&i!=5)
    57             ling=1;
    58         if(i==5){
    59             if(space)
    60                 cout<<" ",space=0;
    61             cout<<"Wan",space=1;
    62         }
    63     }
    64     return 0;
    65 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    @echo off
    小知识点
    字符串匹配方法
    一般保护错误
    Linux常用压缩与解压缩命令
    opencv__linux__配置
    opencv__配置
    Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql
    Web开发从零单排之一:在新浪云平台SAE上开发一个html5电子喜帖
    WPF中使用ValueConverter来实现“范围条件触发器”
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11865893.html
Copyright © 2020-2023  润新知