zoukankan      html  css  js  c++  java
  • 货币

    输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式。如23108元,转换后变成“贰万叁仟壹百零捌”元。为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S、B、Q、W、Y分别代表拾、百、仟、万、亿。于是23108元应被转换输出为“cWdQbBai”元。

    输入格式:

    输入在一行中给出一个不超过9位的非负整数。

    输出格式:

    在一行中输出转换后的结果。注意“零”的用法必须符合中文习惯。

    输入样例1:

    813227345

    输出样例1:

    iYbQdBcScWhQdBeSf

    输入样例2:

    6900

    输出样例2:

    gQjB

    include

    using namespace std;

    int main(){

    char num[10] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
    
    int n, temp, flag = 0;
    
    int k = 100000000;
    
    cin >> n; 
    
    if(n == 0){
    
    	cout << 'a';
    
    	return 0;
    
    }
    
    //判断万位到千万位是否为零
    
    if(n - (n % 10000) - (n / k) * k == 0) flag = 1; 
    
    //找到最高位
    
    while(n > 0){		 
    
    	if(n / k > 0) break;
    
    	else k /= 10;
    
    }	
    
    while(n > 0){
    
    	temp = n / k;
    
    	if(temp == 0){
    
    		//下一位若非零,则输出 
    
    		if((n - temp * k) / (k / 10) != 0) cout << 'a';
    
    	}
    
    	else{
    
    		cout << num[temp];
    
    		if(k == 100000 || k == 10) cout << 'S';
    
    		else if(k == 1000000 || k == 100) cout << 'B';
    
    		else if(k == 10000000 || k == 1000) cout << 'Q';			
    
    	}
    
    	if(k == 10000 && !flag) cout << 'W';
    
    	else if(k == 100000000) cout << 'Y';
    
    	n -= temp * k;
    
    	k /= 10;
    
    }
    

    }

  • 相关阅读:
    模板——二分法
    Trie Tree(静态数组写法,好写)
    欧拉路径 基础题 hiho第49周
    Fleury算法求欧拉路径 hiho第50周
    hdu 5266 pog loves szh III 在线lca+线段树区间优化
    hdu 5269 字典树
    hdu 5265 pog loves szh II
    poj 3678 2-sat(强连通)
    lca 在线,离线 poj 1330
    lca 在线算法 zoj 3195
  • 原文地址:https://www.cnblogs.com/c11c11cyy/p/10409567.html
Copyright © 2011-2022 走看看