zoukankan      html  css  js  c++  java
  • 1002. 写出这个数 (20)

    原题: https://www.patest.cn/contests/pat-b-practise/1002
    参考: http://www.cnblogs.com/geyang/p/6243512.html

    实现思路:
    按照题目要求: 自然数n < 10^100, 则可知所求的和sum < 900, 也就是和
    最多只能是三位数.
    利用C语言提供的getchar(), 每次读入一个数并计算和. 求出和记录在sum中.
    利用C语言2维字符数组, 定义数字拼音字符串. 接下来利用求余数的方法, 分别拿到
    一个3位数, 百位十位个位, 是多少.

    实现代码:

    #include <stdio.h>
    
    int main () {
        char ch;
        int num[4]; // 数组下标0, 不用
        int sum = 0;
        int i;
        char pinyin[10][20] = {
            "ling",
            "yi",
            "er",
            "san",
            "si",
            "wu",
            "liu",
            "qi",
            "ba",
            "jiu"
        };
    
        while ((ch = getchar()) != '
    ') {
            sum += ((int)(ch) - (int)('0'));
        }
        intToArray(num, sum);
    
        if (num[1] == 0 && num[2] == 0) {
            printf("%s
    ", pinyin[num[3]]);
        } else if (num[1] ==0 && num[2] != 0) {
            printf("%s %s
    ", pinyin[num[2]], pinyin[num[3]]);
        } else {
            printf("%s %s %s
    ", pinyin[num[1]], pinyin[num[2]], pinyin[num[3]]);
        }
    
        return 0;
    }
    
    // 整型转数组
    // 参数: arr[]存放转好的数, x要转的数, x范围[0, 900)
    void intToArray (int arr[], int x) {
        int m1; // 百位余数
        int m2; // 十位余数
        int m3; // 各位余数
        m1 = (int)(x / 100);
        m2 = (int)(x / 10) % 10;
        m3 = x % 10;
        arr[0] = 0; // 占个坑位
        arr[1] = m1; // printf("%d
    ", arr[1]);
        arr[2] = m2; // printf("%d
    ", arr[2]);
        arr[3] = m3; // printf("%d
    ", arr[3]);
        // m1, m2, m3的合法取值是[0, 9]
    }
    
    /*
        测试用例:
        输入: 123456789
        输出: si wu
    
        输入: 123
        输出: liu
    */
    
  • 相关阅读:
    react创建项目01
    jq中的时间转化
    vue-resource调用promise取数据方式整理
    ES6 语法
    js获取时间
    trigger()模拟事件操作
    移动端调出不同需求的键盘
    移动端ios滚动卡顿问题
    godaddy购买的域名解析到aws的route53
    k8s 排错
  • 原文地址:https://www.cnblogs.com/asheng2016/p/7637794.html
Copyright © 2011-2022 走看看