PAT乙级1002. 写出这个数 (20)

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

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

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

输入样例:
1234567890987654321123456789
输出样例:
yi san wu

【总结】:
1.正常输入的话,加起来的总值是不会大于900的,所以最多就只有三位。
2.一共有6个测试点,据我推测:
测试点0和值为三位数。
测试点1和值为三位数且十位为0。
测试点2345和值都为一位数。
测试样例里没有0。

#include <stdio.h>
int main()
{
    char a[128];
    int sum=0;
    scanf("%s",&a);
    char *p=a;
    while(*p!='\0'){
        sum+=(*p-'0');
        p++;
    }
    char num[10][6]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
    if(sum>=0&&sum<1000){
    if(sum/100!=0) printf("%s %s %s",num[sum/100],num[sum/10%10],num[sum%10]);
    else if(sum/10%10==0) printf("%s",num[sum%10]);
    else printf("%s %s",num[sum/10%10],num[sum%10]);
    }
    return 0;
}

 

posted @ 2017-09-15 10:56  水草精  阅读(213)  评论(0编辑  收藏  举报