1-8 币值转换 (20 分)

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

1-8 币值转换 (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>
char str[] = {'a','b','c','d','e','f','g','h','i','j'};
char str2[] = {'Q','W','S','B'};
void func(int number , int count , int zero)
{
    if(number!=0)
  {
      ++count;
      func(number/10,count,number%10);    
      if(number%10 != 0)                  
      {
          printf("%c",str[number%10]);          
          if(count == 9)
              printf("Y");
          else if(count != 1 && count != 5)  
              printf("%c",str2[count%4]); 
    }
    else if(zero)       //zero表示上一位数字是否为0,若上一位不为0,这位为0则打印a
      printf("a");    //因为可能会有490000001这种情况导致W打不出来
        if(count == 5)      //所以在判断当前打印位数为零之外打印
            printf("W");
  }
} 
int main()
{
    int number,count = 0,zero;
    scanf("%d",&number);
    zero = number%10;
    if(number == 0)    //如果number输入为0就直接打出来,省事
        printf("a");
    else
        func(number,count,zero);
    return 0;
}


相关文章
|
人工智能 算法 安全
2022年 团体程序设计天梯赛——题解集(2)
⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!) ⭐L1-081 今天我要赢 (5分)——水题 本题题目链接!!!!! 2018 年我们曾经出过一题,是输出“2018 我们要赢”。今年是 2022 年,你要输出的句子变成了“我要赢!就在今天!”然后以比赛当天的日期落款。
484 0
|
数据安全/隐私保护
7-137 凯撒密码
7-137 凯撒密码
175 0
|
算法 索引 Python
零基础Python教程046期 矩阵行列互换算法,二维数组的典型应用
零基础Python教程046期 矩阵行列互换算法,二维数组的典型应用
225 0
|
机器学习/深度学习 程序员 Python
团体程序设计天梯赛-模拟赛(上)
团体程序设计天梯赛-模拟赛
826 0
团体程序设计天梯赛-模拟赛(上)
|
数据安全/隐私保护
凯撒密码 (20 分)
凯撒密码 (20 分)
453 0
L1-088 静静的推荐
L1-088 静静的推荐
487 0
二进制的前导的零
二进制的前导的零
160 0
|
存储 机器学习/深度学习 C语言
《C语言及程序设计》实践参考——删除数组元素
返回:贺老师课程教学链接  项目要求 【项目2 - 删除数组元素】del函数的作用是删除数组a中的指定元素x,n为数组a的元素个数。函数的返回值,为删除元素后的有效元素个数(数组中可能有重复元素)。函数的原型为:int del (int a[10],int n,int x)(1)请实现这个函数,并完成测试。 [参考解答] #include&lt;stdio.h&gt; int del(i
1492 0
|
10天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!