大整数相乘

大整数相乘

前言:
这是牛客网18年真题的第二题,虽然我每天只是抽空刷题,但这不是理由,这题真真卡了我5天。网上很多代码,有些写的太复杂,有些写的虽简单,但思路难懂,所以最后硬着头皮自己写了。后边的刷题记录就不再一一赘述这一条:代码我只贴图,为了大家共同学习,数字最好定义为long,不然测试难过。
题目:
大整数相乘_第1张图片
思路:
1、既然是很大很大的整数,那就得用字符串定义了;不能直接调用乘法,那就得类似于笔算,列个竖式,一步步来
2、采取“分而治之”的思路,先考虑一个大整数和个位数相乘的情况,再考虑大整数和大整数(多位数)相乘的情况;
3、一个长度为la的数字和一个长度为lb的数字相乘,积最多为la+lb位。
i)先考虑一位数与大整数相乘
大整数相乘_第2张图片
ii)再考虑多位数与多位数相乘
大整数相乘_第3张图片
iii)最后考虑最终结果的进位
大整数相乘_第4张图片
大整数相乘_第5张图片
大整数相乘_第6张图片

你可能感兴趣的:(刷题笔记)