P1109 英文翻译(10的13次方以内的数字翻译)

#include <bits/stdc++.h>
using namespace std;
string n;
string a[] = {"","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
string b[] = {"","ten","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"};
int i,x;
void f(){
    if(n[i]!='0'){
        cout<<a[int(n[i]-'0')];
    }
}
void f1(int x){
    if(n.size()>x  && n[i+1]=='0' && n[i+2]=='0'){
        cout<<"and ";
    }
    if(n[i]!='0'){
        cout<<a[int(n[i]-'0')]<<" hundred";
        if(n[i+1]!='0' || n[i+2]!='0'){
            cout<<" and ";
        }
    }
    x = int(n[i+1]-'0')*10+int(n[i+2]-'0');
    if(x>=20){
        cout<<b[x/10]<<"-"<<a[x%10];
    }else{
        cout<<a[x];
    }
    i += 2;
}
void f2(){
    x = int(n[i]-'0')*10+int(n[i+1]-'0');
    if(x>=20){
        if(x%10!=0){
            cout<<b[x/10]<<"-"<<a[x%10];
        }else{
            cout<<b[x/10];
        }
    }else{
        cout<<a[x];
    }
    i += 1;
}
int main() {
    cin>>n;
    for(i = 0;i<n.size();i++){
        x = 0;
        if(n.size()-i==12){
            f1(12);
            cout<<" billion ";
        }else if(n.size()-i==11){
            f2();
            cout<<" billion ";
        }else if(n.size()-i==10){
            f();
            cout<<" billion ";
        }else if(n.size()-i==9){
            f1(9);
            cout<<" million ";
        }else if(n.size()-i==8){
            f2();
            cout<<" million ";
        }else if(n.size()-i==7){
            f();
            cout<<" million ";
        }else if(n.size()-i==6){
            f1(6);
            cout<<" thousand ";
        }else if(n.size()-i==5){
            f2();
            cout<<" thousand ";
        }else if(n.size()-i==4){
            f();
            cout<<" thousand ";
        }else if(n.size()-i==3){
            f1(3);
        }else if(n.size()-i==2){
            f2();
        }else{
            f();
        }
    }
    return 0;
}

 

posted @ 2025-01-04 21:53  王一行(小号)  阅读(3)  评论(0编辑  收藏  举报