1、给出一个大整数a,一个整数类型b,求a*b;
2、保证 0<b<=10000000;
====================================================================
1、如果您已经理解了高精度的加法和减法,本题应该完全没有难度;
2、流程还是一样的:读入与存储、类型转换、数位对齐、模拟竖式计算、反向逐位输出。3、高精度*低精度的要点分析:
3.1 如果一个大整数和一个小于1千万的数字求乘积,就可以使用本篇解题思路;
3.2 因为大整数的基础存储中,每一个数位只存一个10以内的数字,10*10000000是不会超出int的范围的。
====================================================================
1、读入+存储+逆序对齐:
1.1 用 s [ ] 数组来存储第一个字符串;
1.2 将 s [ ] 数组的 字符串,逆序放入 a [ ] 数组中,以第一位作为个位,翻转对齐,求出数位长度na;
1.3 输入整数类型的 b;
2、模拟竖式计算:
2.1 因为全部数字是翻转的,所以个位在左边,最高位在右边:
2.2 b对 a [ ] 的各数位分别求乘积,直接存储到 c [ ] 数组中:
2.3 对 c [ ] 数组:从左向右,依次进位,得到新的 c [ ] 数组:
3、反向逐位输出:
3.1 因为数位对齐,从个位开始,所以要反向输出。
====================================================================
思路看懂了吗?别着急,还有很多细节处理要学习,下面是代码和解释