中文数字转int
来源:互联网 发布:英语四级乱序词汇软件 编辑:程序博客网 时间:2024/06/05 10:38
异常的情况很多,但是正常情况这个是对滴。。。
用栈实现转化:
如果新读入的汉字(假设它代表的数字为N)比栈顶数字还要大
{
弹出栈中所有比N小的元素,并将这些元素累加,假设结果为S;
将S*N入栈;
}
否则
{
将N直接入栈;
}
最后将栈中所有数字相加。
Exp:一亿一千二百五十八万三千二百四十(112,583,240)
第1步==>处理“一”,N=1
直接入栈,
此时栈中元素为:1 (右侧是栈顶)
第2步==>处理“亿”,N=100000000
弹出栈中唯一的元素,然后S=1,将S*N=100000000入栈
此时栈中元素为:100000000
第3步==>处理“一”,N=1
直接入栈
栈中元素为:100000000,1
第4步==>处理“千”,N=1000
弹出栈中比N小的元素(只有一个),然后S=1,将S*N=1000入栈
此时栈中元素为:100000000,1000
第5步==>处理“二”,N=2
直接入栈
此时栈中元素为:100000000,1000,2
第6步==>处理“百”,N=100
弹出栈中比N小的元素(只有一个),然后S=2,将S*N=200入栈
此时栈中元素为:100000000,1000,200
第7步==>处理“五”,N=5
直接入栈
此时栈中元素为:100000000,1000,200,5
第8步==>处理“十”,N=10
弹出栈中比N小的元素(只有一个),然后S=5,将S*N=50入栈
此时栈中元素为:100000000,1000,200,50
第9步==>处理“八”,N=8
直接入栈
此时栈中元素为:100000000,1000,200,50,8
第10步==>处理“万”,N=10000
弹出栈中比N小的元素(有四个),然后S=1258,将S*N=12580000入栈
此时栈中元素为:100000000,12580000
http://blog.csdn.net/zyr1984/article/details/5803786
- 中文数字转int
- 中文金额数字转int
- char 数字转int
- 数字转中文数字大写
- 数字(int型范围内正整数)和中文的相互转换
- java 转中文数字
- Java 数字转中文
- 数字转中文
- 数字转中文
- 数字转中文
- 数字转中文
- 数字转中文
- 数字转中文表示
- 数字转中文大写
- 阿拉伯数字转中文数字
- 【js】数字转汉字中文数字
- javascript数字转汉字中文数字
- 数字转中文和中文单位 demo
- Linux服务器,无法远程控制
- Best Time to Buy and Sell Stock III
- iOS 日期转String 代码类型的使用方法
- ubntu 14.04 安装
- 特征选择常用算法综述
- 中文数字转int
- linux c /指针数组的使用及字符串排序
- lighttpd优化
- win7 32位解决matlab out of memory问题
- 证明你真正富有的8个元素,其中7个与金钱无关
- sqlite3的数据类型
- python的*和**参数
- Spring并发访问的线程安全性问题
- 新浪微博的第三方登录