程序员面试金典——解题总结: 9.17中等难题 17.7给定一个整数,打印该整数的英文描述(例如 "One Thousand,Two Hundred-Thirty Four")

#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <sstream>
#include <stack>

using namespace std;

/*
问题:给定一个整数,打印该整数的英文描述(例如 "One Thousand,Two Hundred-Thirty Four")
分析:等同于一个有规则的翻译。
      3			Three
	  34		Thirty Four
	  234		Two Hundred-Thirty Four【注意百和十位数之间用 “-”】
	  1234		One Thousand,Two Hundred-Thirty Four【注意千和百位数之间用“,”】
	  51234		Fifty One Thousand,Two Hundred-Thirty Four【注意万位数和千位数放在一起构成多少个千】
	  651234	Six Hundred-Fifty One Thousand,Two Hundred-Thirty Four【十万位和万位数,千位数放在一起,构成百位数中间百位数和十位数用“-”连接】
	  7651234	Seven Million,Six Hundred-Fifty One Thousand,Two Hundred-Thirty Four
	            【到百万,就需要把百万位单独拎出来和Million组织在一起,其余部分和几十万的处理相同】
	  87651234  Eighty Seven Million,Six Hundred-Fifty One Thousand,Two Hundred-Thirty Four 【千万位和百万位拎出来组成十位数并拼接Million】
	  987651234	Nine Hundred-Eighty Seven Million,Six Hundred-Fifty One Thousand,Two Hundred-Thirty Four
	  【亿位,千万位,百万位拎出来组成百位数,组成后的百位后拼接 Hunderd- , 组成后的百十个位后拼接Million】
	  1987651234 One Billion,Nine Hundred-Eighty Seven Million,Six Hundred-Fifty One Thousand,Two Hundred-Thirty Four
	  【十亿位单独拎出来,后拼接Billion】
	  
	  总结规律:将提供的数字,计算出总 的位数digitNum , 计算位数 digitNum / 3 = groupNum,对每个组以3位进行划分:
	  百位数:
	  十万数到千位数:以百位数的记数方式后拼接“Thousand”
	  亿数到百万数:以
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值