[*leetcode 43] Multiply Strings
2014-11-13 21:56
381 查看
Given two numbers represented as strings, return multiplication of the numbers as a string.
Note: The numbers can be arbitrarily large and are non-negative.
[Solution]
大数乘法主要有以下方法:
1、按照乘法法则直接乘,算法较简单,时间复杂度O(n^2)
2、分治法。
3、快速数论变换FNTT
2和3实现比较复杂,本次只完成1.
Note: The numbers can be arbitrarily large and are non-negative.
[Solution]
大数乘法主要有以下方法:
1、按照乘法法则直接乘,算法较简单,时间复杂度O(n^2)
2、分治法。
3、快速数论变换FNTT
2和3实现比较复杂,本次只完成1.
string multiply(string num1, string num2) { int i, j; int m = num1.length(), n = num2.length(); char *ret = new char[m + n + 1]; string sret = ""; if ((num1 == "0") || (num2 == "0")) return "0"; reverse(num1.begin(), num1.end()); reverse(num2.begin(), num2.end()); memset(ret, 0, m + n); for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { int temp = (num1[i] - '0') * (num2[j] - '0'); ret[i + j] += temp % 10; if (ret[i + j] > 9) { int at = ret[i + j]; ret[i + j] = at % 10; ret[i + j + 1] += at / 10; } ret[i + j + 1] += temp / 10; } } i = m + n - 1; while (0 == ret[i]) i--; while (i >= 0) { sret += (ret[i] + '0'); i--; } delete[] ret; return sret; }
相关文章推荐
- [LeetCode 43] Multiply Strings
- LeetCode 43 Multiply Strings
- leetcode43 Multiply Strings
- Leetcode:43. Multiply Strings
- LeetCode 43 Multiply Strings
- 【leetcode】【43】Multiply Strings
- Leetcode 43 Multiply Strings
- LeetCode 43. Multiply Strings
- [Leetcode 43, medium] Multiply Strings
- LeetCode 43. Multiply Strings
- [LeetCode] 415 Add Strings && 67 Add Binary && 43 Multiply Strings
- leetcode(43)Multiply Strings
- LeetCode(43) Multiply Strings
- leetcode 43: Multiply Strings
- LeetCode (43) Multiply Strings
- Leetcode 43. Multiply Strings
- LeetCode_OJ【43】Multiply Strings
- ★leetcode43_Multiply Strings
- LeetCode 43. Multiply Strings
- Leetcode Multiply Strings 43