• 72


    7-2 币值转换

    输入一个整数(位数不超过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>
    #include <stdlib.h>
    char item[11]="abcdefghij";
    char loca[5]="QBSA";
    void transport(int num[],int n)
    {
    int location=0;
    while(num[location]==0)
    location++;
    if(num[location-1]==0&&location!=0)
    printf("%c",item[0]);
    while(location<=n)
    {

    if(num[location]!=0&&location<=n)
    {

    if(location!=n)
    printf("%c%c",item[num[location]],loca[4-n-1+location]);
    else
    printf("%c",item[num[location]]);


    }
    else if(num[location]==0&&num[location+1]!=0&&location<=n-1)
    printf("%c",item[0]);
    location++;


    }
    return;

    }
    int main()
    {
    char p[10];

    char ch;
    int num[9];
    int i=0;
    while((ch=getchar())!='\n')
    {
    p[i]=ch;
    i++;

    }
    p[i]='\0';
    int length=strlen(p);
    for(i=0;i<=length-1;i++)
    num[i]=p[i]-'0';
    if(length<=4)
    transport(num,length-1);
    else if(length<=8)
    {
    transport(num,length-5);
    printf("W");
    transport(num+length-4,3);
    }
    else
    {
    printf("%cY",item[num[0]]);
    transport(num+1,3);
    if(num[1]!=0||num[2]!=0||num[3]!=0||num[4]!=0)
    printf("W");
    if(num[length-4]==0)
    printf("%c",item[0]);
    transport(num+5,3);

    }

    return 0;
    }

    起初看到这道题的时候我不太会下手,我在网上看了一下大佬的,然后再结合自己学的写了出来。

    对题目理解还不算太透彻,希望老师上学后能讲解一下

  • 相关阅读:
    pyhton 小技巧
    scikit-learn K近邻法类库使用小结
    机器学习加速方法
    Virtual box安装回退的一系列可能的原因及解决办法
    Linux 定时任务
    Redis 操作命令
    在linux下安装并运行scrapyd
    同步/异步 异步回调 协成 线程队列
    Python常用的标准库以及第三方库有哪些?
    Flask 知识点
  • 原文地址:https://www.cnblogs.com/bramblesrose/p/10388283.html
Copyright © 2020-2023  润新知