pat乙级真题1002_写出这个数

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

输入格式:

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

输出格式:

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

输入样例:

1234567890987654321123456789

输出样例 :

yi san wu

当输入的数大于int的存储范围时,要用char进行存储

代码:

#include <iostream>
#include <string>
#include <string.h>  
using namespace std;
int main(int argc, const char * argv[]) {
    char a[10000];
    cin >> a;
    char b[10000];
    int sum = 0;
    int length_a = strlen(a);
    for(int i=0;i<length_a;i++){
        a[i]=a[i]-'0';
        sum=sum+a[i];  
    }
    for(int i=0;sum!=0;i++){
        b[i]=sum%10;    
        sum=sum/10;
    }
    int length_b = strlen(b);
    for(int i=length_b-1;i>=0;i--){
        switch(b[i]){
            case 0 :cout<<"ling";break;
            case 1 :cout<<"yi";break;
            case 2 :cout<<"er";break;
            case 3 :cout<<"san";break;
            case 4 :cout<<"si";break;
            case 5 :cout<<"wu";break;
            case 6 :cout<<"liu";break;
            case 7 :cout<<"qi";break;
            case 8 :cout<<"ba";break;
            case 9 :cout<<"jiu";break;
        }
         if(i>0)
            cout<<" ";
    }
    return 0;
}

19分,还1分不知道扣在哪。

测试点 结果 耗时 内存
0 答案正确 3 ms 512KB
1 答案错误 3 ms 512KB
2 答案正确 2 ms 384KB
3 答案正确 3 ms 384KB
4 答案正确 3 ms 384KB
5 答案正确 2 ms 512KB

猜你喜欢

转载自blog.csdn.net/Chen_Swan/article/details/82903209
今日推荐