专栏首页算法修养LeetCode 273. Integer to English Words

LeetCode 273. Integer to English Words

题目

很简单的模拟题啦

class Solution {
public:
    
     string number1[20] = { "Zero","One","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten","Eleven","Twelve","Thirteen","Fourteen","Fifteen","Sixteen","Seventeen","Eighteen","Nineteen" };
string number3[10] = { "Twenty","Thirty","Forty","Fifty","Sixty","Seventy","Eighty","Ninety" };
string number4[10] = { "Hundred","","Thousand","Million","Billion" };

string numberToWords2(int num)
{
    string ans = "";
    int a = num / 100;
    num %= 100;
    int b = num / 10;
    num %= 10;
    int c = num;
    if (a != 0)
    {
        ans += number1[a];
        ans += " ";
        ans += number4[0];
        ans += " ";
    }

    if (b >= 2)
    {
        ans += number3[b - 2];
        ans += " ";
    }
    else if (b == 1)
    {
        ans += number1[10 + c];
        ans += " ";
        ans = ans.substr(0, ans.size() - 1);
        return ans;
    }
    
    if (c != 0)
    {
        ans += number1[c];
        ans += " ";
    }

    ans = ans.substr(0, ans.size() - 1);
    return ans;
}
    
string function(int num1,int num2,int pos)
{
    string ans="";
    int x = num1 / num2;
    if (x != 0)
    {
        string y = numberToWords2(x);
        ans += y;
        ans += " ";
        if(number4[pos]!="")
        {
            ans += number4[pos];
            ans += " ";
        }
    }
    
    return ans;

}

string numberToWords(int num) {

    string ans = "";
    
    int x = 1000000000;
    for(int i=4;i>=1;i--)
    {
        ans += function(num,x,i);
        num %= x;
        x/=1000;
    }
   
    if (ans == "")
        ans = "Zero";

    if(ans[ans.size()-1]==' ')
    ans = ans.substr(0, ans.size() - 1);
    return ans;
}

};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode 171. Excel Sheet Column Number

    ShenduCC
  • LeetCode 168. Excel Sheet Column Title

    ShenduCC
  • LeetCode 216. Combination Sum III(DFS)

    题意:从1-9中选出k个数之和等于n,这个k个数不能有相同的,输出所有可能的k个数字的集合,结果也不能重复

    ShenduCC
  • 剑指offer——丑数

    题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑...

    AI那点小事
  • 南昌大学航天杯第二届程序设计竞赛校赛网络同步赛 水题

    链接:https://www.nowcoder.com/acm/contest/122/C 来源:牛客网

    用户2965768
  • LeetCode 482. 密钥格式化

    给定一个密钥字符串S,只包含字母,数字以及 ‘-’(破折号)。N 个 ‘-’ 将字符串分成了 N+1 组。给定一个数字 K,重新格式化字符串,除了第一个分组以外...

    Michael阿明
  • 空降兵如何管理团队?

    张树臣
  • 【POJ1083】 Moving Tables (并行的搬运)

    房间1和2,3和4,...,399和400共用一节走廊,有q次从房间li到ri的搬运桌子,一次搬运10分钟。两个搬运如果走廊有重叠部分,则必须一个结束后再执行另...

    饶文津
  • 【小米OJ】进制转换

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    喜欢ctrl的cxk
  • 【Python编程导论】第三章- 一些简单的数值程序

    穷举法:是猜测与检验算法的一个变种。我们枚举所有可能性,直至得到正确答案或者尝试完所有值。

    Datawhale

扫码关注云+社区

领取腾讯云代金券