273. 整数转换英文表示

273. 整数转换英文表示

题目描述

点这里

思路分析

模拟题
首先英文数字结构为XXX,XXX,XXX。第一个逗号是Billion,第二个逗号是Million,第三个逗号是Thousand。然后每三位是一个整体,可以用一个get函数来输出。

代码实现

class Solution {
    
    
public:
    string num0_19[20]={
    
    
        "Zero","One","Two","Three","Four","Five","Six","Seven",
        "Eight","Nine","Ten","Eleven","Twelve","Thirteen",
        "Fourteen","Fifteen","Sixteen","Seventeen","Eighteen",
        "Nineteen"
    };
    string num20_90[8]={
    
    
        "Twenty","Thirty","Forty","Fifty",
        "Sixty","Seventy","Eighty","Ninety"
    };
    string num1000[4]={
    
    
        "Billion ","Million ","Thousand ",""
    };
    string get(int x)//1-999
    {
    
    
        string res;
        if(x>=100){
    
    
            res+=num0_19[x/100]+" Hundred ";
            x%=100;
        }
        if(x>=20){
    
    
            res+=num20_90[x/10-2]+" ";
            x%=10;
            if(x)res+=num0_19[x]+" ";
        }
        else if(x) res+=num0_19[x]+" ";
        return res;
    }
    string numberToWords(int num) {
    
    
        if(!num) return "Zero";
        string res;
        for(int i=1e9,j=0;i>=1;i/=1000,j++){
    
    
            if(num>=i){
    
    
                res+=get(num/i)+num1000[j];
                num%=i;
            }
        }
        res.pop_back();
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_50757994/article/details/121396577