c++ pat 乙级 -------1002 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
?
?
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;
}
總結
以上是生活随笔為你收集整理的c++ pat 乙级 -------1002 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: coreseek实战(一):window
- 下一篇: c++ 获取数组的长度