?
?
1002?寫出這個數?(20 分)
讀入一個正整數?n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:
每個測試輸入包含 1 個測試用例,即給出自然數?n?的值。這里保證?n?小于?10?100??。
輸出格式:
在一行內輸出?n?的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最后一個拼音數字后沒有空格。
輸入樣例:
1234567890987654321123456789
輸出樣例:
yi san wu
測試點 | 結果 | 耗時 | 內存 |
---|---|---|---|
0 | 答案正確 | 3?ms | 612KB |
1 | 答案正確 | 2?ms | 376KB |
2 | 答案正確 | 2?ms | 384KB |
3 | 答案正確 | 2?ms | 384KB |
4 | 答案正確 | 3?ms | 368KB |
5 | 答案正確 | 3?ms | 384KB |
?代碼:
#include<iostream>
using namespace std;
void int_pinyin(int a){
?? ?switch(a){
?? ??? ?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;?? ?
?? ?}
}
int main(){
?? ?char a[101];
?? ?cin>>a;
?? ?int sum=0,i=0;
?? ?while(a[i]!='\0'){
?? ??? ?sum+=a[i]-'0';
?? ??? ?i++;
?? ?}
?? ?//cout<<sum<<endl;
?? ?
?? ?int b[11],j=0;
?? ?if(sum==0){
?? ??? ?int_pinyin(0);
?? ??? ?return 0;
?? ?}
?? ?
?? ?while(sum!=0){
?? ??? ?b[j]=sum%10;
?? ??? ?//cout<<b[j]<<" ";
?? ??? ?sum=sum/10;
?? ??? ?j++;
?? ?}
?? ?
?? ?for(int i=j-1;i>0;--i){
?? ??? ?int_pinyin(b[i]);
?? ??? ?cout<<" ";
?? ?}
?? ?int_pinyin(b[0]);
?? ?return 0;
}