第8题是让用a-j表示10-19,来表示出二十进制,并随其进行加法计算。
首先我对比着十进制和十六进制,八进制的转化关系,想着先把输入的二十进制转化为十进制,然后再计算,但发现二十变十简单,十变二十我却想不到方法,只能改变方法。
然后按着高精度计算的法子,先输入字符串类型,转化成数组存储,一位一位的计算。中间比较注意的是倒序存储,满二十进一等,但是因为高精度那节讲得很清楚,也没什么难处。
首先我对比着十进制和十六进制,八进制的转化关系,想着先把输入的二十进制转化为十进制,然后再计算,但发现二十变十简单,十变二十我却想不到方法,只能改变方法。
然后按着高精度计算的法子,先输入字符串类型,转化成数组存储,一位一位的计算。中间比较注意的是倒序存储,满二十进一等,但是因为高精度那节讲得很清楚,也没什么难处。
a-j与10-19的转化是一个重点,我有两个思路:1、定义map容器,char对应int 。 2、使用ascii码进行计算。 但由于这次联系STL,我选择了方法一。
定义map如果挨个赋值显然是麻烦的,我用了两个循环进行赋值。
代码到了最后,我也遇到了很困难的问题---如何把计算好的10-19换回a-j,我定义的map<char,int>,即知道了int怎么着对应的char,我试了试几个函数,键值等都没有效果,也是无奈放弃,转头回到我上面说的ascii码上解决。
代码如下: