zoukankan      html  css  js  c++  java
  • 7-1 货币转换


    输入一个整数(位数不超过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 <math.h>
    int main(){
          int a,b,c,d,e,n,i,j,m,N,k;
         scanf("%d",&N); 
         a=b=N ;
    if(a==0){
           printf("a");
         }
     for(i=0;a>0;i++){
      a=a/10;
     }
     c=i;
     for(i;i>0;i--){
         n=1;
         e=0;
      for(m=i-1;m>0;m--){
       n=n*10;
      }
      a=b/n;
      b=b-a*n;
      switch(a){
       case 0: printf("a");  break; case 1: printf("b");  break;
       case 2: printf("c");  break; case 3: printf("d");  break;
       case 4: printf("e");  break; case 5: printf("f");  break;
       case 6: printf("g");  break; case 7: printf("h");  break;
       case 8: printf("i");  break; case 9: printf("j");  break;
    }
      switch (i) {
            case 2: printf("S"); break; case 3: printf("B"); break;
            case 4: printf("Q"); break; case 5: printf("W"); break;
            case 6: printf("S"); break; case 7: printf("B"); break;
            case 8: printf("Q"); break; case 9: printf("Y"); break;
        }
        j=0;
        for(d=b;d>0;j++){
           d=d/10;
        }
        j=i-j-1;
        if(c<9&&i>5&&j>2){
         printf("W");
        }
        j=0;
        for(d=b;d>0;j++){
         d=d/10;
        }
        if(j!=0){
            e=i-j-1;
        }else{
         i=0;
        }
        if(e>3&&i>4||e==2&&i<4){
         printf("a");
         i=j+1;
        }else if(e==2&&i>1){
         printf("a");
         i=i-2; 
        }else if(j<4&&c<9&&j!=0&&e!=1&&e!=0){
         printf("a");
         i=j+1;
        }else if(e==1){
         printf("a");
         i=j+1;
        }else{
         i=j+1;
        }
     }
     return 0;
    }
    实验思路:首先,我们要确定输出数的位数,然后在确定输出的大写字母,想不到更好的法子,所以呢,用这种比较死的方法,把所有能发生的情况一一打出来,利用switch的输入来进行字母的转换。
    此题借鉴于黄诺诚。
  • 相关阅读:
    Linux混杂设备驱动学习
    Linux字符设备驱动解析
    U-BOOT-Linux启动指令bootm分析
    项目-基于视频压缩的实时监控系统--tiny6410
    django分页linaro-django-pagination
    django FileFIeld和ImageField 上传路径改写
    ajaxFileUpload用法
    gzip压缩
    编写EL函数
    struts2上传下载
  • 原文地址:https://www.cnblogs.com/Jay-h/p/10434490.html
Copyright © 2011-2022 走看看