zoukankan      html  css  js  c++  java
  • PAT乙级1002. 写出这个数

    1002. 写出这个数 (20)
    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
    输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10^100。
    输出格式:
    在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。
    输入样例:
    1234567890987654321123456789
    输出样例:
    yi san wu


    解题思路:用字符串数组存储该输入样例,求出字符串数组各位之和,再分离出和中的每位数字,由于分离和输出

    为先进后出的顺序,所以采用栈来实现(此处应注意当和为0的情况,以及输出中间才有空格的情况

    代码如下:

    #include<iostream>
    #include<string>
    #include<stdlib.h>
    #include<cstring>
    #include<stack>
    using namespace std;
    char a[101];
    int main()
    {
        int sum = 0;
        cin >> a;
        for (int i = 0; i < strlen(a); i++)
            sum += a[i] - '0';
        string s[10] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
        stack<int> x;
        do{
            x.push(sum % 10);
            sum = sum / 10;
        } while (sum != 0);
        cout << s[x.top()];
        x.pop();
        while (x.size() != 0)
        {
            cout << " " << s[x.top()];
            x.pop();
        }
        cout << endl;
        system("pause");
        return 0;
    }

    在网上看到更为简洁的代码:

    简洁之处在于:

    将输入的数字用string类型存储,求出的和也使用to_string转化成string类型,转换成string类型后方便于访问其每一位数字;

    #include <iostream>
    #include <string>
    using namespace std;
    int main() {
        string s;
        cin >> s;
        int sum = 0;
        string str[10] =  {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
        for (int i = 0; i < s.length(); i++)
            sum += (s[i] - '0');
        string num = to_string(sum);
        for (int i = 0; i < num.length(); i++) {
            if (i != 0) cout << " ";
            cout << str[num[i] - '0'];
        }
        return 0;
    }
  • 相关阅读:
    LeetCode Arithmetic Slices
    LeetCode Number of Longest Increasing Subsequence
    LeetCode Longest Increasing Subsequence
    shrio注解的方式进行权限控制
    30分钟学会如何使用Shiro(转自:http://www.cnblogs.com/learnhow/p/5694876.html)
    eclipse逆向生成实体类
    redis2.3.7安装时出现undefined reference to `clock_gettime'
    使用Nginx+Lua(OpenResty)开发高性能Web应用
    shrio初体验(2)Realm
    shrio初体验(1)
  • 原文地址:https://www.cnblogs.com/denghui666/p/9427072.html
Copyright © 2011-2022 走看看