原题传送门ios
这道题的题目我是真的无力吐槽,可是,这道题真心不错QAQ。测试
这道题不难,但很考验耐心与细心,有各类各样的小错误,若是不细心都不会发现,我最开始的代码只得了60分,就是忽略了好几个状况,而后反复测试数据,才AC的QAQ(也许只是由于我太弱了)spa
值得一刷code
#include<iostream> #include<cstdio> #include<string> #include<vector> #include<algorithm> #include<cstdlib> #include<cmath> #include<stack> #include<map> using namespace std; int n; int s[5]; string a[25]={"","one","two","three", "four","five","six","seven","eight","nine", "ten","eleven","twelve","thirteen","fourteen", "fifteen","sixteen","seventeen","eighteen","nineteen"}; string x[20]={"","","twenty","thirty","forty","fifty", "sixty","seventy","eighty","ninety"}; int main() { cin>>n; int i=4; while(n!=0) { s[i]=n%10; n/=10; i--; } if(s[1]!=0) cout<<a[s[1]]<<" thousand "; if(s[2]!=0) cout<<a[s[2]]<<" hundred "; else if(s[3]!=0&&s[4]!=0&&(s[2]!=0||s[1]!=0)) cout<<"and "; if(s[3]==0&&s[4]!=0&&(s[2]!=0||s[1]!=0)) cout<<"and "<<a[s[4]]<<endl; else if(s[3]==0&&s[4]!=0) cout<<a[s[4]]<<endl; else if(s[3]==1) cout<<a[s[4]+10]<<endl; else if(s[4]!=0) cout<<x[s[3]]<<" "<<a[s[4]]; if(s[1]==0&&s[2]==0&&s[3]==0&&s[4]==0) cout<<"zero"; return 0; }