1002. 寫出這個數 (20) 讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。 輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。 輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1空格,但一行中最後一個拼音數字後沒有空格。 輸 ...
1002. 寫出這個數 (20)
讀入一個自然數n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。
輸入格式:每個測試輸入包含1個測試用例,即給出自然數n的值。這裡保證n小於10100。
輸出格式:在一行內輸出n的各位數字之和的每一位,拼音數字間有1空格,但一行中最後一個拼音數字後沒有空格。
輸入樣例:1234567890987654321123456789輸出樣例:
yi san wu
1 #include<iostream> 2 #include<vector> 3 #include<stack> 4 using namespace std; 5 int main(){ 6 int i,sum=0,flag=0; char ch; 7 string map[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"}; 8 vector<int> vi; 9 stack<int> s; 10 while((ch=getchar())!='\n'){ 11 i=ch-'0'; 12 vi.push_back(i); 13 } 14 for(auto o:vi) 15 sum+=o; 16 while(1){ 17 i=sum%10; 18 sum/=10; 19 s.push(i); 20 if(sum==0) 21 break; 22 } 23 while(!s.empty()){ 24 i=s.top(); 25 s.pop(); 26 if(flag++==0) 27 cout<<map[i]; 28 else 29 cout<<" "<<map[i]; 30 } 31 return 0; 32 }View Code