zoukankan      html  css  js  c++  java
  • Integer to English Words

    Convert a non-negative integer to its english words representation. Given input is guaranteed to be less than 231 - 1.

    For example,

    123 -> "One Hundred Twenty Three"
    12345 -> "Twelve Thousand Three Hundred Forty Five"
    1234567 -> "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"

    class Solution {
    private:
        string helper(int num) {
            const string words20[] = { "One", "Two", "Three", "Four", "Five", "Six",
                    "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen",
                    "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen",
                    "Nineteen" };
            const string words100[] = { "Twenty", "Thirty", "Forty", "Fifty",
                    "Sixty", "Seventy", "Eighty", "Ninety" };
    
            if (num >= 1000000000)
                return helper(num / 1000000000) + " Billion" + helper(num % 1000000000);
            else if (num >= 1000000)
                return helper(num / 1000000) + " Million" + helper(num % 1000000);
            else if (num >= 1000)
                return helper(num / 1000) + " Thousand" + helper(num % 1000);
            else if (num >= 100)
                return helper(num / 100) + " Hundred" + helper(num % 100);
            else if (num >= 20)
                return " " +words100[num / 10 - 2] + helper(num % 10);
            else if (num >= 1)
                return " "+ words20[num - 1];
            else
                return "";
        }
    public:
        string numberToWords(int num) {
            if (num == 0)
                return "Zero";
            else
                return helper(num).substr(1);
        }
    };
  • 相关阅读:
    运算符和结合性
    几种排序算法 C++
    UNIX环境高级编程笔记
    几个C语言题与答案
    视频流中的DTS/PTS到底是什么 转载
    linux硬链接与软链接 转载
    HTTP POST上传文件(wininet实现)
    并查集(求最小生成树和集团问题)
    c++ vector
    C++STL priority_queue类
  • 原文地址:https://www.cnblogs.com/wxquare/p/5911893.html
Copyright © 2011-2022 走看看