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;
        }
    }
  • 相关阅读:
    6.11 修饰符的适用范围
    5.10 对象与垃圾回收
    5.9 枚举类
    5.8 java 11增强的Lambda表达式
    5.7 内部类
    5.6 接口
    5.5 抽象类
    5.4 final修饰符
    5.3 类成员
    5.2 Object类中两个需要被重写的方法
  • 原文地址:https://www.cnblogs.com/DaiShuSs/p/12108233.html
Copyright © 2011-2022 走看看