zoukankan      html  css  js  c++  java
  • 币值转换

    7-1 币值转换 (20 分)

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

    输入格式:

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

    输出格式:

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

    输入样例1:

    813227345

    输出样例1:

    iYbQdBcScWhQdBeSf

    输入样例2:

    6900

    输出样例2:

    gQjB

    实验代码

    #include <stdio.h>
     
    #define MAXLENGTH 9
     
    char str[4] = {' ', 'S', 'B', 'Q'};
     
    int seperate (int * numList, long num)
    {
    	int i = MAXLENGTH-1;
     
    	while(1)
    	{
    		numList[i] = num % 10;
    		num /= 10;
     
    		if(num <= 0)
    			break;
     
    		i--;		
    	}
    	
    	return i;
    }
     
    void readNum(int numList[], int start)
    {
    	if(start == MAXLENGTH - 1)
    		printf("a");
     
    	else
    	{
    		if(start == 0)
    			printf("%cY", 'a'+numList[0]);
     
    		for(int c = 0; c < 2; c++)
    		{
    			if(start > 4)
    				c = 1;
     
    			int position = 3;
    			int hasprint = 0;
    			int i = c*4 +1;
    			
    			if(start > i)
    			{
    				position -= (start - i);
    				i = start;		
    			}
    			
    			for(; i <= (c+1)*4; i++, position--)
    			{
    				if(numList[i] != 0)
    				{
    					if(position > 0)
    						printf("%c%c", 'a'+numList[i], str[position]);
    					else
    						printf("%c", 'a'+numList[i]);
    					hasprint = 1;
    				}
    				
    				else
    				{
    					if(i < MAXLENGTH - 1 && numList[i+1] != 0)
    						printf("a");
    				}
    			}
    			
    			if(c == 0 && hasprint == 1)
    				printf("W");
    		}
    	}
     
    	printf("
    ");	
    }
     
    int main()
    {
    	int numList[MAXLENGTH] = {0};
    	long num;
    	scanf("%d", &num);
    	int start = seperate(numList, num);
     
    	readNum(numList, start);
     
    	return 0;
    }
    
  • 相关阅读:
    delphi快捷键
    Delphi代码规范
    Hibernate通用Dao
    SpringData初探
    Windows下shell神器
    正则语法总结
    nodejs的npm命令无反应的解决方案
    JavaScript中,返回上一个页面时,如何保证上一个页面的不刷新?
    js上传图片
    正则匹配结果取反(正则中的前瞻,负向前瞻与后顾)
  • 原文地址:https://www.cnblogs.com/Liu0922/p/10386290.html
Copyright © 2011-2022 走看看