• 1002 写出这个数 (20分)


    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

    输入格式:

    每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1。

    输出格式:

    在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

    输入样例:

    1234567890987654321123456789
    
     

    输出样例:

    yi san wu


    /*
    读入一个正整数N,计算各位数字之和,用汉语拼音输出和的每一位数字
    其中n<10^(100),故使用字符串数组形式存储,其中每个元素为char类型,根据ASCII表,得到对应数字需要 - '0'

    每个拼音数字之间有一个空格,最后一个拼音数字之后无空格 ,

    这里的问题有两点,

    其一是输出问题,结果的长度是不确定的,只能从低位开始存储

    其二是空格插入问题,这里总跟随着一个判断,这里的处理方式很多,有的方法很巧妙,值得借鉴
    */

    #include <stdio.h>
    #include <string.h>
    
    char table[][8]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu",32};
    int main() 
    {
        //输入正整数n 
        char str[102]={0};
        scanf("%s",str);
        //计算各位数字之和 
        int len=strlen(str);
        int i,sum=0;
        for ( i=0 ; i<len ; i++ ) {
            sum += str[i] - '0';
        } 
        //以指定格式输出结果
        int res[100]={0};
        int j;
        //这里不清楚sum的大小,故从sum低位开始从存储,再倒序输出 
        do {
            res[j++] = sum%10;
            sum /= 10;
            //按指定格式输出空格 
            if ( sum != 0 ) {
                res[j++] = 10;
            }
        } while(sum != 0) ;
        int k;
        for ( k=j-1 ; k>=0 ; k-- ) {
            printf("%s",table[res[k]]);
        } 
    } 
    从今天起,做一个挖坑又填坑的好少年
  • 相关阅读:
    WebApi下载附件文件
    zabbix
    redis主从与集群搭建
    redis
    mariadb集群配置(主从和多主)
    使用python执行sql语句和外键解析
    mariadb(四)连接查询,视图,事物,索引,外键
    mariadb(三)查
    mariadb(二)增删改
    firewalld
  • 原文地址:https://www.cnblogs.com/hdu-linux-Soc-AI-IC/p/12564359.html
Copyright © 2020-2023  润新知