实际上就是让你写一个大数乘法

大数乘法基本都用模拟竖式了,就是看各种优化

模拟竖式可以先全部计算,然后最后统一进位【这里当然也可以优化,减少一点复杂度】

过程是这样的

LeetCode - 43:字符串相乘 C++解法

先不进位,就全部加起来

LeetCode - 43:字符串相乘 C++解法

然后总的结果是

LeetCode - 43:字符串相乘 C++解法

然后从最后一位【56】,往前判断,如果大于9,就往前进位【121+=56/10,本位=56%10=6】

LeetCode - 43:字符串相乘 C++解法

126大于9,持续这个操作

LeetCode - 43:字符串相乘 C++解法

LeetCode - 43:字符串相乘 C++解法

LeetCode - 43:字符串相乘 C++解法LeetCode - 43:字符串相乘 C++解法

如果已经到begin且begin任然大于9,那么就插入进位,在这个例子中,本位变为2,插入一个12/.10=1

LeetCode - 43:字符串相乘 C++解法

所以最后的结果就是 12578*97=1220066

LeetCode - 43:字符串相乘 C++解法

相关文章:

  • 2021-11-19
  • 2021-06-15
  • 2021-07-01
  • 2021-07-10
  • 2021-09-06
  • 2021-05-19
猜你喜欢
  • 2021-09-30
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2021-06-13
  • 2021-12-09
相关资源
相似解决方案