您好,欢迎来到外链网!
当前位置:外链网 » 站长资讯 » 专业问答 » 文章详细 订阅RssFeed

浙大PAT乙级 1002 写出这个数

来源:互联网 浏览:97次 时间:2023-04-08

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

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

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

输入样例:
1234567890987654321123456789
输出样例:
yi san wu
我的代码:

#include <iostream>using namespace std;int main(){ string str1; cin >> str1; int sum = 0; for(unsigned int i = 0; i < str1.length(); i++){ sum +=(str1[i]-'0'); } int sum1 = sum; int m = 0; while(sum1){ sum1 /= 10; m++; } int a[m]; int k = 0; while (sum){ a[k] = sum % 10; sum /= 10; k++; } for(int i = k-1; i >=0; i--){ switch(a[i]){ case 0: cout << "ling" << flush; break; case 1: cout << "yi" << flush; break; case 2: cout << "er" << flush; break; case 3: cout << "san" << flush; break; case 4: cout << "si" << flush; break; case 5: cout << "wu" << flush; break; case 6: cout << "liu" << flush; break; case 7: cout << "qi" << flush; break; case 8: cout << "ba" << flush; break; case 9: cout << "jiu" << flush; break; } if ( i ){ cout << " " << flush; } } return 0;}