• 1002 写出这个数


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

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

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

    输入样例:
    1234567890987654321123456789

    输出样例:
    yi san wu

    第一次做的时候想用栈来解决,毕竟FILO用来倒转比较容易想到,其实完全可以用sprintf()来处理。

    #include<stdio.h>
    #include<iostream>
    #include<string>
    
    using namespace std;
    int main() {
    
        string str;
        string all[]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
        cin >> str;
        string::iterator it=str.begin();
        int sum=0,i=0;
        char ch[4];
        for(;it!=str.end();it++)
            sum+= *it-'0';
        sprintf(ch,"%d",sum);//将int型sum转变为char类型数组
        while(ch[i]!='\0'){
            cout<<all[ch[i]-'0'];
            if(ch[++i]!='\0')//判断是不是最后一个元素,是则不加空格
                printf(" ");
        }
    
        return 0;
    
    }




  • 相关阅读:
    隐式类型转换
    STL::allocator rebind
    Proxy Class(代理类)
    C++ 没有合适的默认构造函数(无参数构造函数)
    E
    C
    Multiplication Puzzle POJ
    Brackets POJ
    Halloween Costumes LightOJ
    ACwing 139. 回文子串的最大长度(二分+Hash)
  • 原文地址:https://www.cnblogs.com/kalicener/p/12410764.html
Copyright © 2020-2023  润新知