Thousand sad reasons [simulation] love and sorrow of

Original title Portal

Thinking


This question is the subject I really powerless Tucao, however, this question really good QAQ.

This question is not difficult, but it is a test of patience and careful, there are a variety of small mistakes, if not careful will not find the beginning of the code I had 60 points, is to overlook several cases, then repeated testing data, only the AC QAQ(Maybe just because I'm too weak)

It is worth Brush

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;
}

Guess you like

Origin www.cnblogs.com/gongdakai/p/11622757.html