辅导孩子C++编程,实现大数的加法、减法和乘法,思路比较直接,就是模拟手工运算,逐位运算,如果有进位则上一位加一。先程序实现的减法,程序的结构大部分是从减法部分拷贝过来的。为了简化处理,输入认为是长度小于100的数字,没有进行合法性判断。也没有输入输出说明。
1 | //大数的加法 |
大数减法的实现的思路也很直接,就是模拟减法运算,将参见运算的数字逐位保存到数组中,然后逐位进行减法运算,如果结果小于0就向高位借一当十。大数运算,加减乘的思路都是一致的,相对比较容易,除法有一定的难度。下面是实现的代码:
1 | #include <iostream> |
代码中真正的计算部分的代码很少,大部分代码是在处理输入和输出。这部分代码没有很好的优化,直来直去。
大数的乘法比加法减法稍微复杂一些,但思路一样,仍然是模拟手工运算。乘法需要按位相乘,这需要一个中间数组保存每一位相乘的结果,然后将数组中的数按位相加。这里保存输出的结果的数组要大一些。还有就是在最后的加和时,需要错位相加。
1 | //大数的乘法 |