zoukankan      html  css  js  c++  java
  • PAT乙——1002 写出这个数 (20分)

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

    输入格式:

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

    输出格式:

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

    输入样例:

    1234567890987654321123456789
    
     

    输出样例:

    yi san wu
    
     
    两个比较关键的思路:
    1⃣️用字符串读取输入
    2⃣️得到sum每位数的方法
    3⃣️将yi、er、san等拼音放在数组中
     
    #include <iostream>
    #include<stdlib.h>
    #include <stack>
    #include <queue>
    #include <string>
    #include<math.h>
    using namespace std;
    
    #define MAXSIZE 1024
    
    //将拼音放在数组中
    string result[10] =  {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};
    
    int main(){
        string s;
        while(cin>>s){
        int sum=0;
        for(int i=0;i<s.length();i++)
            sum+=s[i]-'0';
        int bit=0, temp=sum;
        //求b位的个数
        while(temp!=0){
            temp/=10;
            bit++;
        }
        int max = (int)pow((float)10,(float)bit-1);  //  获取最高位数
        int t;
        while(max != 0){
            t = sum / max;   //    此数位数上的数字
            sum =sum% max;    //   下一个需要除的数字
            max =max/ 10;    //    每次除10的指数
            cout<<result[t];
            if(max!=0)
                cout<<" ";
        }
            cout<<endl;
        }
    }
  • 相关阅读:
    LNMP架构三
    LNMP架构二
    LNMP架构
    LAMP架构三
    LAMP架构二
    LAMP架构
    rsync工具介绍
    mysqldump备份单表数据
    阿铭每日一题 day 14 20180125
    阿铭每日一题 day 13 20180124
  • 原文地址:https://www.cnblogs.com/DaiShuSs/p/12108233.html
Copyright © 2011-2022 走看看