题目:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:
在一行内输出 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 |