B1002 寫出這個數
阿新 • • 發佈:2019-02-02
個數 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 寫出這個數