zoukankan      html  css  js  c++  java
  • pta

    一:实验代码

    include <stdio.h>

    char theValue[10] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
    char theUnit[5] = { 'S','B','Q','W','Y' };
    int Billion = 100000000;

    int main()
    {
    int num;
    scanf("%d", &num);

    if (num == 0)
        printf("a");
    else
    {
        while (num)                   // 判断数字的最高位
        {
            if (num / Billion > 0)
                break;
            else
                Billion /= 10;
        }
    
        while (num)
        {
            int temp = num / Billion;
    
            if (temp == 0)
            {
                if ((num - temp * Billion) / (Billion / 10) != 0)
                    printf("a");
            }
            else 
            {
                printf("%c", theValue[temp]);
                if (Billion == 1e5 || Billion == 1e1)
                    printf("%c", theUnit[0]);
                else if (Billion == 1e6 || Billion == 1e2)
                    printf("%c", theUnit[1]);
                else if (Billion == 1e7 || Billion == 1e3)
                    printf("%c", theUnit[2]);
            }
            if (Billion == 1e4)
                printf("%c", theUnit[3]);
            else if (Billion == 1e8)
                printf("%c", theUnit[4]);
    
            num -= temp * Billion;
            Billion /= 10;
        }
    }
    
    return 0;
    

    }
    二:设计思路
    首先从宏观上来看,我们需要一个存放数字即a-f的字符数组,一个存放单位即S,B,Q,W,Y的字符数组,还需要一个结果数组,存放单位和数字的组合。
    在题目保证输入为非负整数的情况下,首先需判定输入数为0的情况,一般的处理手段是输出a,return 0。如果输入数不为0,那么将输入数从低到高取位判定。取得的当前位有0和非0之分,若当前位非0,且当前位数不为1即当前位不为个位,则存放单位与数字。注意由于一开始不知道输入数的位数,故结果数组的索引只能从低到高,一般从0开始,所以先存放单位,后存放数字。若当前位为0,则大概需要注意下述3种情况:
    1.有单位,无数字:万位
    2.无单位,无数字:
    3 千位,个位
    4 除万位之外,前面一位为0
    5无单位,有数字:
    除万位,千位,个位之外,前面一位不为0
    上述情况的操作流程大致为:
    1.若当前位为万位,则必存单位
    2.若当前位不为万位,则又需要分情况讨论:
    3当前位为千位或个位,不存数字
    4 当前位不为千位,且不为个位,但前面一位为0,也不存数字
    5 当前位不为千位,且不为个位,前面一位非0,存数字

  • 相关阅读:
    C语言学习_C如何在一个文件里调用另一个源文件中的函数
    C语言学习_include<>与include""的区别
    C语言学习_一个简单程序的解释与C学习方法概括
    python_list和tuple互转
    C语言学习_恶搞小程序
    Linux命令(基础1)
    Linux基础配置
    面向对象知识补充1
    linux系统centOS在虚拟机下的自定义安装
    sql注入
  • 原文地址:https://www.cnblogs.com/chenxinxin/p/10395250.html
Copyright © 2011-2022 走看看