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

    1).实验代码


    #include<stdio.h>
    #include<math.h>
    int main()
    {
    int i=-1,x,y,z,m,n,h,l,a;
    char c='a';
    scanf("%d",&x);
    y=x;
    if(x==0){
    printf("a");
    }
    do{
    x=x/10;
    i++;
    }while(x!=0);
    do{
    if(i>=4){
    h=y/10000;
    l=i-4;
    }
    if(i<4){
    h=y;
    l=i;
    }
    a=pow(10,l);
    m=pow(10,i);
    z=y/m;
    if(z==0&&z!=n&&h%a!=0){
    printf("a");
    }
    if(z!=0){
    printf("%c",c+z);
    if(i==8){
    printf("Y");
    }
    if(i==7||i==3)
    printf("Q");
    if(i==6||i==2){
    printf("B");
    }
    if(i==5||i==1){
    printf("S");
    }
    if(i==4){
    printf("W");
    }
    }
    if(i==4&&z==0){
    printf("W");
    }
    if(n==0&&i==3&&z==0){
    printf("a");
    }
    y=y%m;
    i--;
    n=z;
    }while(y!=0);
    return 0;
    }



      2) 设计思路

    先判断输入是不是0,如果是则输出“a”,如果不是则用“/10”计算位数,从高位到低位输出,用数学函数pow来得出首位数字,然后依次输出“b”到“j”。


    调试过程遇到的问题及解决方法

    有很多问题,比如多个0怎么输出,借鉴网上某位大佬





  • 相关阅读:
    IBM Minus One(water)
    约瑟夫问题的循环链表实现
    双向链表(差不多)
    单向链表的建立,插入,删除(复习一下)
    找新朋友(欧拉函数)
    验证角谷猜想(hd1279)
    Wolf and Rabbit(gcd)
    Big Number(大数)
    字串数(高精度组合数)
    寻找素数对(hd1262)
  • 原文地址:https://www.cnblogs.com/hy14157/p/10396286.html
Copyright © 2011-2022 走看看