大整数乘法

本文地址: http://blog.csdn.net/caroline_wendy/article/details/29353263

题目:

大整数乘法, 给定两个长度不超过10000的整数, 返回乘法的结果.

char* multi(char* number_a, char* number_b)

代码:

/** test.cpp**  Created on: 2014.04.24*      Author: Spike*//*eclipse cdt, gcc 4.8.1*/#include <iostream>
#include <cstring>using namespace std;char* multi(char* number_a, char* number_b) {int len_a = strlen(number_a); //计算长度int len_b = strlen(number_b);int* num_arr = new int[len_a+len_b];memset(num_arr, 0, sizeof(int)*(len_a+len_b)); //置0for (int i=len_a-1; i>=0; --i) { //计算每一位for (int j=len_b-1; j>=0; --j) {num_arr[i+j+1] += (number_b[j]-'0')*(number_a[i]-'0');}}for (int i=len_a+len_b-1; i>=0; --i) { //进位if (num_arr[i] >= 10) {num_arr[i-1] += num_arr[i]/10;num_arr[i] %= 10;}}char* result = new char[len_a+len_b+1];for( int i=0; i<(len_a+len_b); ++i){result[i] = (char)(((int)'0')+num_arr[i]);}result[len_a+len_b] = '\0'; //添加结束符delete[] num_arr;return result;//delete[] r;
}int main(void){char* number_a = "10089328947197491751797009791032";char* number_b = "837190274291741974109721921321451";std::cout << number_a << " * " << number_b << " = " << std::endl;char* result = multi(number_a, number_b);std::cout << result << std::endl;delete[] result;return 0;
}

输出:

10089328947197491751797009791032 * 837190274291741974109721921321451 =
08446688068723880396297437187783381747295407214602740206809027432

编程算法 - 大整数乘法相关推荐

  1. java 整数乘法的算法,大整数乘法——分治算法的时间复杂度

    1.1原始的低效算法 我们将n位(为方便讨论简化问题,我们假设n是2的幂)十进制整数(二进制也可以)X.Y都分为2段,每段的长度是n/2位. 如果现在直接用递归或分治进行编程,其算法复杂度为: 其中: ...

  2. 贪心算法-大整数乘法/加法/减法

    设有两个大整数相乘,X=61438521,Y=94736407.那么XY=5820464730934047.易知我么的算法需要O(N²)即O(8²)次操作. 如果我们把X和Y都拆成两半,由最高几位和最 ...

  3. 【分治算法】大整数乘法

    前言 最近开了算法导论课,上来就是递归分治,大整数乘法就是分治法的典型案例,通过参考网上书上我终于编程实现了大整数乘法,特此纪念 原理 由于两个大整数直接相乘太大,所以我们可以将它划分成几个小块分别相 ...

  4. 【算法/C语言】大整数乘法(分治)

    题目: 用分治算法编程实现两个n位十进制大整数的乘法运算. 思路: 参考大整数乘法的详解 伪码: Function MulOfLargeInt(X,Y,n)** 输入:n位乘数X,Y,位数n 输出:X ...

  5. python两数相乘代码_Python 实现大整数乘法算法的示例代码

    我们平时接触的长乘法,按位相乘,是一种时间复杂度为 O(n ^ 2) 的算法.今天,我们来介绍一种时间复杂度为 O (n ^ log 3) 的大整数乘法(log 表示以 2 为底的对数). 介绍原理 ...

  6. 计算机算法设计与分析 大整数乘法

    大整数乘法 问题描述 求两个不超过200位的非负整数的积. 输入形式 有两行,每行是一个不超过200位的非负整数,没有多余的前导0. 输出形式 一行,即相乘后的结果.结果里不能有多余的前导0,即如果结 ...

  7. 大整数乘法(Karatsuba算法的字符串形式的C++实现)

    #include <iostream> #include <sstream> #include <cstring> using namespace std;/函数声 ...

  8. 分治法实验之大整数乘法(算法设计分析)

    分治法实验之大整数乘法 01. 问题描述 02. 输入格式 03. 输出格式 04. 输入样例 05. 输出样例 06. 问题分析 07. 算法设计 08. 代码实现 09. 测试结果 10. 复杂度 ...

  9. 分治算法经典问题---大整数乘法(1~32位大整数乘法)C++

    大整数乘法 大整数乘法(1~32位大整数乘法) 分治的思想 实验题目及要求(大整数乘法) 算法分析(result=m4*10^2^+(m2+m3)*10^n/2^+m1) 算法分析 代码 源文件 ma ...

最新文章

  1. 7 Papers Radios | 机器人「造孩子」;谷歌裸眼3D全息视频聊天技术公开
  2. 走向ASP.NET架构设计-第六章-服务层设计(中篇)
  3. Oracle 优化器_访问数据的方法_单表
  4. linux shell sleep usleep 延时命令 秒 毫秒 微秒
  5. java 注释 连接,java – 如何使用JPA注释创建连接表?
  6. Apache的shiro获取当前Session的方法
  7. JAVA如何取得空list成员类型_String 类型的List作为一个成员变量保存,保存成功后取对象时报空指针...
  8. linux mint 图标主题_如何在 Linux Mint 中更换主题
  9. python方差分析模型的预测结果怎么看_statsmodels中方差分析表结果解析
  10. 佳能hdr_多方位升级 佳能发布数码单反相机新品EOS 850D
  11. Visual Studio Code 编辑器 使用入门
  12. 【渝粤题库】陕西师范大学800005 人文地理学
  13. 【Python实例第24讲】稀疏的可逆协方差估计
  14. linux远程拷贝快捷键远程,linux命令scp远程拷贝
  15. 操作系统日志收集与分析
  16. RedHat认证介绍
  17. Java中使用多态的好处和弊端及其举例
  18. 11.23Bom完以及pc端端offset
  19. 一篇文章入门Spring
  20. ac3168无线网卡驱动下载_英特尔面向Windows 10推出无线网卡驱动程序和图形命令中心应用更新...

热门文章

  1. 采样点数与采样频率的区别
  2. TXT文件编码格式解析
  3. 数字电路2. OC门、OD门、三态门
  4. 使用Java动态数组的实现
  5. C语言之通讯录的实现
  6. includes的用法
  7. 【前端学习笔记】JQuery事件细节、JQ进阶常用方法
  8. 考研数据结构之循环队列
  9. 【GANs学习笔记】(二十四)StyleGAN
  10. KVM虚拟化技术的-NUMA技术和应用