PAT-A 1005 Spell It Right
阿新 • • 發佈:2018-12-21
題目大意
給出一個非負整數N,要求對N的各個位數的數字進行求和,再將求和的數字以標準格式輸出。
其中標準格式為:將數字由高位到低位,以英文進行輸出,每個英文字母之間空一格,輸出尾部不能帶空格。
解題思路
輸入的數字會超過整形與長整形的範圍,因此不能用整形來接受輸入型別,應當用字串。
然後將字串各個位置的數字相加,再輸出結果就好。
注意要點
1.輸入數字會超限,應當用字串來儲存輸入。
2.注意輸入為零的情況。
#include <iostream> #include <string> #include <vector> using namespace std; string display(int n) { switch (n) { case 0:return "zero";break; case 1:return "one";break; case 2:return "two";break; case 3:return "three";break; case 4:return "four";break; case 5:return "five";break; case 6:return "six";break; case 7:return "seven";break; case 8:return "eight";break; case 9:return "nine";break; default:break; } } int main() { string str; cin>>str; int sum=0; for(int i=0;i<str.length();++i) sum+=str[i]-'0'; vector<string> v; if(0==sum) v.push_back("zero"); while(sum!=0) { v.push_back(display(sum%10)); sum/=10; } cout<<v[v.size()-1]; for(int i=v.size()-2;i>=0;--i) cout<<" "<<v[i]; return 0; }