zoukankan      html  css  js  c++  java
  • PAT 1082 Read Number in Chinese

    Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chinese way. Output Fu first if it is negative. For example, -123456789 is read as Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu. Note: zero (ling) must be handled correctly according to the Chinese tradition. For example, 100800 is yi Shi Wan ling ba Bai.

    Input Specification:

    Each input file contains one test case, which gives an integer with no more than 9 digits.

    Output Specification:

    For each test case, print in a line the Chinese way of reading the number. The characters are separated by a space and there must be no extra space at the end of the line.

    Sample Input 1:

    -123456789
    

    Sample Output 1:

    Fu yi Yi er Qian san Bai si Shi wu Wan liu Qian qi Bai ba Shi jiu
    

    Sample Input 2:

    100800
    

    Sample Output 2:

    yi Shi Wan ling ba Bai

    写循环太麻烦就就暴力解决了


     1 #include<iostream>
     2 #include<string>
     3 #include<vector>
     4 using namespace std;
     5 string num[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
     6 int main(){
     7   int n;
     8   cin>>n;
     9   if(n<0){
    10     cout<<"Fu ";
    11     n = -n;
    12   }
    13   if(n==0){cout<<"ling"; return 0;}
    14   bool existNoneZero=false, existZero=false, NoneZero=false;
    15   int dig=n/100000000;
    16   if(dig==0);
    17   else{
    18     cout<<num[dig]<<" Yi";
    19     existNoneZero = true;
    20   }
    21   n = n % 100000000;
    22   dig = n/10000000;
    23   if(dig!=0){
    24     if(existNoneZero) cout<<" "<<num[dig]<<" Qian";
    25     else cout<<num[dig]<<" Qian";
    26     existNoneZero = true;
    27     existZero = false;
    28     NoneZero=true;
    29   }else existZero=true;
    30   n = n % 10000000;
    31   dig = n/1000000;
    32   if(dig!=0){
    33     if(!existNoneZero) cout<<num[dig]<<" Bai";
    34     else if(existZero) cout<<" ling "<<num[dig]<<" Bai";
    35     else cout<<" "<<num[dig]<<" Bai";
    36     existNoneZero = true;
    37     existZero = false;
    38     NoneZero=true;
    39   }else existZero = true;
    40   n = n % 1000000;
    41   dig = n/100000;
    42   if(dig!=0){
    43     if(!existNoneZero) cout<<num[dig]<<" Shi";
    44     else if(existZero) cout<<" ling " << num[dig]<<" Shi";
    45     else cout<<" "<<num[dig]<<" Shi";
    46     existNoneZero = true;
    47     existZero = false;
    48     NoneZero=true;
    49   }else existZero = true;
    50   n = n % 100000;
    51   dig = n/10000;
    52   if(dig!=0){
    53     if(!existNoneZero) cout<<num[dig];
    54     else if(existZero) cout<<" ling "<<num[dig];
    55     else cout<<" "<<num[dig];
    56     existNoneZero = true;
    57     existZero = false;
    58     NoneZero=true;
    59   }else existZero=true;
    60   if(NoneZero) cout<<" Wan";
    61   n = n % 10000;
    62   dig = n/1000;
    63   if(dig!=0){
    64     if(!existNoneZero) cout<<num[dig]<<" Qian";
    65     else if(existZero) cout<<" ling "<<num[dig]<<" Qian";
    66     else cout<<" "<<num[dig]<<" Qian";
    67     existNoneZero = true;
    68     existZero = false;
    69   }else existZero=true;
    70   n = n % 1000;
    71   dig = n/100;
    72   if(dig!=0){
    73     if(!existNoneZero) cout<<num[dig]<<" Bai";
    74     else if(existZero) cout<<" ling "<<num[dig]<<" Bai";
    75     else cout<<" "<<num[dig]<<" Bai";
    76     existNoneZero = true;
    77     existZero = false;
    78     NoneZero=true;
    79   }else existZero=true;
    80   n = n%100;
    81   dig = n/10;
    82   if(dig!=0){
    83     if(!existNoneZero) cout<<num[dig]<<" Shi";
    84     else if(existZero) cout<<" ling "<<num[dig]<<" Shi";
    85     else cout<<" "<<num[dig]<<" Shi";
    86     existNoneZero = true;
    87     existZero = false;
    88   }else existZero=true;
    89   dig = n%10;
    90   if(dig!=0){
    91     if(!existNoneZero) cout<<num[dig];
    92     else if(existZero) cout<<" ling "<<num[dig];
    93     else cout<<" "<<num[dig];
    94   }
    95   return 0;
    96 }
  • 相关阅读:
    直接插入排序
    排序概述
    因为现在这个水平还用不到树和图,所有之后放弃树和图的学习,直接进入排序的学习,现在学到排序树的删除部分,还没学完删除
    检索树
    二叉树的构造
    dedecms 忘记后台密码
    php配置伪静态的方法
    thinkPHP 中去除URL中的index.php
    thinkphp 验证码的使用
    php MySQL数据库操作类源代码
  • 原文地址:https://www.cnblogs.com/mr-stn/p/9579444.html
Copyright © 2011-2022 走看看