c语言!!难啊!!大虾们指教!!!

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:39:03
Description
输入用中文表示的两个2位整数,求他们的和
Input
输入分两行,每行一个中文表示的二进制整数
Output
输出一个中文表示的整数,代表输入两个数的和
Sample Input
十五
五十

Sample Output
六十五

大虾们只要告诉我算法就行了(写详细点更好!!)....我想了好久没想到该用什么方法比较好...无头绪啊!!
大虾们给我写一下基本算法程序吧...数字不用太大...只要求一百以内的数相加...

简单说一下吧。首先要做的是把中文翻译成数字。有如下规律:

1.把汉字串以“万”、“亿”两个字作为间隔隔开。只需在每个间隔间单独处理,最后合并结果即可。

2.在每个间隔中,其一般表达方法是“X千X百X十X”。其首字要么是“一”至“九”的数字,要么是“零”。
a.如果是数字,那么它后面的第二个字必是“千”。因此,把前面的数字乘上1000,后面仍按类似这样分析。
b.如果是“零”,接着往后走。如果遇到是一至九数字,按照类似a的方式继续分析。只是,此时需要查看数字后面跟的是“百”还是“十”,以乘以对应的数字;如果不是数字而是遇到是“十”,不用犹豫了。数字就是十几或者10了。

3.每个间隔的千位数算好后,乘以各自的万/亿量既可。这就不用说了吧。

4.注意,最左边的那组稍有不同,因为它允许以“十”开头,例如“十万八千”、“十八”,但是不会以“零”开头。如果以零开头,说明数字就是零。

然后是输出为汉字,这个应该比翻译更容易。把数字按照十进制放入字符串里面,分成四个四个一组的,每组转换成“几千几百几十几”,或者“零几百几十几”等等,以合适的“万”、“亿”作间隔,打印出来即可。

难什么!你去看看数据结构!你们第二年可能要学!看看就知道什么叫难!

不算难啊.一个汉字相当两个char.判断时候判断两次就行了.