zoukankan      html  css  js  c++  java
  • 1082. Read Number in Chinese (25)

    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

    #include<iostream>
    #include<cstdio>
    #include<vector>
    #include<cstring>
    using namespace std;
    int main(){
    	string unit[]={" ","Shi","Bai","Qian"};
    	string number[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    	int val;
    	scanf("%d",&val);
    	if(val==0){
    		printf("ling
    ");
    		return 0;
    	}
    	int flag;
    	if(val<0){
    		flag=1;
    		val*=-1;
    	}else{
    		flag=0;
    	}
    	vector<int>vt[3];
    	int tmp=val;
    	int i=0;
    	while(tmp!=0){
    		vt[i].push_back(tmp%10);
    		tmp=tmp/10;
    		if(vt[i].size()==4){
    			i++;
    		}
    	}
    	vector<string>result;
    	vector<int>t;
    	if(vt[2].size()>0){
    		t=vt[2];
    		result.push_back(number[t[0]]);
    		result.push_back("Yi");
    	}
    	if(vt[1].size()>0){
    		t=vt[1];
    		int size = t.size();
    		int i=size-1;
    		int index=0;
    		while(t[i]==0){
    			index=1;
    			i--;
    		}
    		int index1=0;
    		for(;i>=0;i--){
    			if(t[i]==0){
    				index1=1;
    				continue;
    			}
    			if(index==1||index1==1){
    				result.push_back("ling");
    				index=0;
    				index1=0;
    			}
    			result.push_back(number[t[i]]);
    			if(i!=0)
    				result.push_back(unit[i]);	
    		}
    		if(index==0){
    			result.push_back("Wan");
    		}
    	}
    	if(vt[0].size()>0){
    		t=vt[0];
    		int size = t.size();
    		int i=size-1;
    		int index=0;
    		while(t[i]==0){
    			index=1;
    			i--;
    		}
    		int index1=0;
    		for(;i>=0;i--){
    			if(t[i]==0){
    				index1=1;
    				continue;
    			}
    			if(index==1||index1==1){
    				result.push_back("ling");
    				index=0;
    				index1=0;
    			}
    			result.push_back(number[t[i]]);
    			if(i!=0)
    				result.push_back(unit[i]);	
    		}		
    	}
    	int size=result.size();
    	if(flag==1){
    		cout<<"Fu ";
    	}
    	cout<<result[0];
    	for(i=1;i<size;i++){
    		cout<<' '<<result[i];
    	}
    	cout<<endl;
    	return 0;
    }
    

      




  • 相关阅读:
    Dynamic CRM 2013学习笔记(四十二)流程5
    Dynamic CRM 2013学习笔记(四十一)流程4
    Dynamic CRM 2013学习笔记(四十)流程3
    Dynamic CRM 2013学习笔记(三十九)流程2
    Dynamic CRM 2013学习笔记(三十八)流程1
    Dynamic CRM 2013学习笔记(三十七)自定义审批流7
    STL
    Step by Step iOS Project In Action
    STL
    STL
  • 原文地址:https://www.cnblogs.com/grglym/p/7941982.html
Copyright © 2011-2022 走看看