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 n,s=0;
    int main(void){
    int i,j,k,p=1,flag=1;
    int f(int q,int n);
    scanf("%d",&n);

    for(i=0;n/p>=10;i++){
        p=pow(10,i);
        s++;
    }
    if(n==0)
         printf("a");
    if(n<10&&n>=0)
         s=1;
    for(j=1;j<=s;j++){
    switch(f(j,n)){
        case 0:if(j!=s&&j!=s-4){
            if(f(j+1,n)==0)
               flag=0;
            else
               flag=1;
            if(flag)printf("a");break;
            };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;
    }
        if(f(j,n)==0&&j!=s&&j!=s-4) 
             continue;
        else{
        if(s==9&&j==5){
            if(f(2,n)==0&&f(3,n)==0&&f(4,n)==0&&f(5,n)==0)
            continue;
        }
        switch(s-j){
            case 1:printf("S");break;
            case 2:printf("B");break;
            case 3:printf("Q");break;
            case 4:printf("W");break;
            case 5:printf("S");break;
            case 6:printf("B");break;
            case 7:printf("Q");break;
            case 8:printf("Y");break;
        }
    }} 
    return 0;
    

    }
    int f(int q,int n)
    {
    int k,a;
    if(q==1)
    k=n/pow(10,s-1);
    else{
    a=n/pow(10,s-q+1);
    k=n/pow(10,s-q)-a*10;
    }
    return k;
    }第一步:定义主函数,对主函数进行预处理。
    第二步:定义整形变量n,initial_n.
    第三步:调用scanf语句接收变量n,initial_n.
    第四步:赋值initial_n=n.
    第五步:定义一个数组num,它有10个字符变量,再依次赋值=a,b,c,d,e,f,g,h,i,j,再定义数组unit,有8个字符变量,再依次赋值=S,B,Q,W,S,B,Q,Y,分别代表个,十,百,千,万,十万,百万,千万,亿。再定义数组result,有17字符变量,全都赋值为0,这是为了输入范围不会超过亿,输出格式也就只有17位了。
    第六步:再定义赋值整型变量i,last_i=n%10,j=0,count_n=0.
    第七步:调用while语句,输入进入while循环条件n>0,利用
    i = n % 10;
    n /= 10;
    count_n ++;计算出未知整数的最高单位数。
    第八步: 如果符合条件 if (i == 0 && (count_n % 4) > 1) {
    if (last_i != 0) {
    result[j++] = num[i];
    } 输出result[1]=a。
    第九步:输入 if (count_n == 5 && i == 0 && initial_n < 100000000) {
    result[j++] = unit[count_n];
    }符合则输出result[2]=B.
    第十步:if (count_n > 1 && i != 0) {
    result[j++] = unit[count_n];输出result[3]=unit[count_n].
    第十一步:如果i!=0,输出 result[j++] = num[i]。
    第十二步:给last_i赋值等于i,并且一直循环该结构,直到跳出循环。
    第十三步:如果initial_n=0,输出 result[j++] = num[i];
    第十四步:用for语句使j递减,输出字符,result[j].
    第十五步:换行,输出结果,结束程序。

  • 相关阅读:
    New version of VS2005 extensions for SharePoint 3.0
    QuickPart : 用户控件包装器 for SharePoint Server 2007
    随想
    发布 SharePoint Server 2007 Starter Page
    如何在SharePoint Server中整合其他应用系统?
    Office SharePoint Server 2007 中文180天评估版到货!
    RMS 1.0 SP2
    SharePoint Server 2007 Web内容管理中的几个关键概念
    如何为已存在的SharePoint站点启用SSL
    Some update information about Office 2007
  • 原文地址:https://www.cnblogs.com/zou1223/p/10401804.html
Copyright © 2011-2022 走看看