鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 编程语言开发 > c++ > >

大数乘法

来源:互联网 作者:佚名 时间:2013-10-29 09:26
今天上课,实在无聊,手机上网的时候发现了一哥们提问如何实现大数的乘法,觉得挺有意思,查了点资料(华为某年的面试题就是如何实现大数的乘法),网上实现的方法很多,这里的思路是用数组每个元素存储一位数字,我把代码补全了,保证代码直接可以在编译器中

今天上课,实在无聊,手机上网的时候发现了一哥们提问如何实现大数的乘法,,觉得挺有意思,查了点资料(华为某年的面试题就是如何实现大数的乘法),网上实现的方法很多,这里的思路是用数组每个元素存储一位数字,我把代码补全了,保证代码直接可以在编译器中通过... (vs2010 编译通过)

#include <iostream> #include <string> #include <vector> using namespace std; &number2, string &result) { int length1 = number1.size(); int length2 = number2.size(); vector<int> temp(length1 + length2, 0); for (int i = 0; i < length1; ++i) { for (int j = 0; j < length2; ++j) { temp[i + j + ) * (number2[j] - ); } } for (int i = length1 + length2 - 1; i > 0; --i) { if (temp[i] >= 10) { temp[i - 1] += temp[i] / 10; temp[i] %= 10; } } int i = 0; while (temp[i] == 0) { ++i; } int len = i; result.resize(length1 + length2 - len); for (int j = 0; j < length1 + length2 - len; ++i, ++j) { result[j] = temp[i] + ; } } int main() { ; ; string result; Multiply(number1, number2, result); cout << result << endl; cin.get(); return 0; }

网友评论
<