1. 程式人生 > >B1002 寫出這個數

B1002 寫出這個數

個數 base 測試 code while stream 正整數 mis i++

讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。

輸入格式:

每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裏保證 n 小於 1。

輸出格式:

在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後一個拼音數字後沒有空格。

輸入樣例:

1234567890987654321123456789

輸出樣例:

yi san wu


 1 #include<cstdio>
 2 #include<string.h>
 3 #include<string>
 4 #include<map>
 5
#include<iostream> 6 using namespace std; 7 char str[110]; 8 int main() 9 { 10 map<int,string> mp; 11 mp[0]="ling"; 12 mp[1]="yi"; 13 mp[2]="er"; 14 mp[3]="san"; 15 mp[4]="si"; 16 mp[5]="wu"; 17 mp[6]="liu"; 18 mp[7]="qi"; 19 mp[8]="ba"; 20 mp[9
]="jiu"; 21 while(scanf("%s",str)!=EOF){ 22 int len=strlen(str); 23 int sum=0,r[100],k=0; 24 for(int i=0;i<len;i++){ 25 sum=sum+(str[i]-0); 26 } 27 while(sum!=0){ 28 int a=sum%10; 29 r[k++]=a; 30 sum=sum/10; 31 }
32 for(int i=k-1;i>=0;i--){ 33 cout<<mp[r[i]]; 34 if(i!=0){ 35 cout<<" "; 36 } 37 } 38 cout<<endl; 39 } 40 return 0; 41 }

Mist Note: map函數是一個好東西。留意輸出格式,還有循環取出每一位數字。

B1002 寫出這個數