PAT1002. 写出这个数 (20)

来源:互联网 发布:mac使用windows软件 编辑:程序博客网 时间:2024/06/06 13:19

1002. 写出这个数 (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

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

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

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

输入样例:
1234567890987654321123456789
输出样例:

yi san wu

上网查了一下题解,感觉自己写的好麻烦。。另外,从今天开始就正式进入pat备考了,加油!

#include <iostream>#include <algorithm>using namespace std;int main(){    ios::sync_with_stdio(false);    string s;    cin>>s;    int sum = 0;    for(int i=0; i<s.length(); ++i)    {        int x = s[i] - '0';        sum += x;    }    ///cout<<sum<<endl;    int a[10], n=0;    while(true)    {        a[n++]=sum%10;        sum/=10;        ///cout<<a[i]<<endl;        if(sum == 0)            break;    }    /*    for(int i=0; i<n; ++i)        cout<<a[i]<<endl;        */    for(int i=n-1; i>=0;--i)    {        switch(a[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<<" ";        else            cout<<endl;    }    return 0;}


0 0
原创粉丝点击