思路

二进制
分成两半,先算左边,再算右边


结果:

2344344 110101
直接相乘:258114618744
优化算法:258114618744
请按任意键继续. . .

代码

同理写了一个十进制算法,如下:

代码只是模拟,不是实际运算过程
此算法不能解决溢出问题,只能降低时间复杂度

没有解决奇数位数问题

#include<iostream>
#include<math.h>
#define DIGIT 6//两个DIGIT位十进制大整数乘法运算using namespace std;int main()
{long long int num1;long long int num2;cin >> num1 >> num2;long long int num1Left, num1Right;long long int num2Left, num2Right;num1Left = num1 / pow(10, DIGIT / 2);//Anum1Right = num1 - num1Left * pow(10, DIGIT / 2);//Bnum2Left = num2 / pow(10, DIGIT / 2);//Cnum2Right = num2 - num2Left * pow(10, DIGIT / 2);//Dlong long int res;//XY = AC 2n + ((A - B)(D - C) + AC + BD) 2n / 2 + BDlong long int AC = num1Left * num2Left;long long int BD = num1Right * num2Right;res = AC * pow(10, DIGIT) + ((num1Left - num1Right)*(num2Right - num2Left) + AC + BD)*pow(10, DIGIT / 2) + BD;cout << "直接相乘:" << num1 * num2 << endl;cout << "优化算法:" << res << endl;system("pause");
}

算法设计与分析(第四周)大整数相乘 分治法【不能解决溢出问题】相关推荐

  1. Cryp.1.大整数相乘---分治法

    from:2017 CCF计算机课程改革导教班. 陈道蓄 11 大整数相乘 – 比长乘更快 小学里就教过整数乘的算法.要计算两个正整数a,b的乘积,你用b中每一位依次乘a,并将结果逐行排列,按b的相应 ...

  2. 大整数相乘 + 分治法(JS)

    使用分治法来实现大整数相乘 相乘的基本原理 如: 1234 * 567 第一步:分解234 -> 12 和 34;567 -> 5 和 67; 第二步:分别计算 首部: 12*5=60中部 ...

  3. 天津理工大学研究生学位课《算法设计与分析》期末大作业

    2022- 2023学年度第一学期 研究生学位课< 算法设计与分析 > 期末大作业 2022级电子信息天理研究生 一.简答题 1.若,写出用Θ.Ω和О描述f(n) 的渐进表达.(7分) 答 ...

  4. 算法设计与分析——分治与递归——整数划分问题

    将正整数n表示为一系列正整数之和, n=n1+n2+n3+n4+......+nk (其中,n1>=n2>=n3>=n4........>=nk>0,k>=1) 正 ...

  5. 分治法大整数乘法c语言,大整数乘法(分治法)

    #include #include using namespace std; int num(int u) //计算乘数的位数 { int i,num; i=1; num=u/10; while(nu ...

  6. 分治法的经典问题——大整数相乘

    分治法的经典问题--大整数相乘 分治法的原理 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同.求出子问题的解,就可得到原问题的解.即一种分目标 ...

  7. 算法设计与分析——递归与分治策略——全排列

    算法设计与分析--递归与分治策略--全排列 全排列问题的解决是通过分治与递归思想来解决的 首先判断是否递归到了最后一位,如果递归到了最后一位,则输出他当前的全排列序列. 如果没有到达最后一位,则循环的 ...

  8. 哈工大2020秋算法设计与分析大作业(一)

    哈工大2020秋算法设计与分析大作业(一) 前言 正文 1 论文题目 标题 作者 刊物 2 论文阅读报告 2.1 摘要 2.2 问题定义 2.3 算法或证明过程 2.4 实验结论 哈工大2020秋算法 ...

  9. 算法设计与分析——十大经典排序算法二(6--10)

    一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com  Time of completion:2023.3.1 Las ...

最新文章

  1. JavaScript 开发者数量暴涨、C# 超越 PHP,揭晓全球开发最新趋势!
  2. 阿里云API网关相关操作
  3. 09、redis哨兵的多个核心底层原理的深入解析(包含slave选举算法)
  4. 程序猿的英语之ielts indicator speaking test
  5. java rsa 公钥加密_java – 使用公钥进行RSA解密
  6. 实战系列-HashMap深入剖析
  7. java集合课程,I学霸官方免费课程三十三:Java集合框架之Map集合
  8. asp.net 获取IP地理位置的几个主要接口
  9. php查看加载的配置文件路径,thinkphp5.0 配置文件加载路径说明
  10. jquery插件(转)
  11. Raki的网络流24题题解总结
  12. origin数据平滑_Origin平滑曲线的使用方法
  13. pythoneducoder苹果梨子煮水的功效_【苹果和梨煮水的功效】_同梨煮水_作用-大众养生网...
  14. 推荐系统——用户画像
  15. linux增加elk用户,在Ubuntu 18.04 Bionic Beaver Linux上安装ELK
  16. AcWing Round #14
  17. GT性能测试Android版使用说明
  18. 【Git】回退单个文件到指定版本
  19. 分享74个ASP整站程序源码,总有一款适合您
  20. ls -l 字段意思

热门文章

  1. php mysql 连接方法 对比_Mysql实例php连接MySQL的两种方式对比
  2. 视音频数据处理入门:UDP-RTP协议解析
  3. C++中的指针与引用
  4. Kafka消息格式中的变长字段(Varints)
  5. 设计模式:责任链模式(Chain of Responsibility)
  6. 苹果亚马逊同一天公布无损音质服务、 Google与Flutter、Snap 的 AR 战事等|Decode the Week...
  7. YouTube高效传输策略:节省14%带宽 用户体验提升
  8. 动态优化器—一种感知视频编码优化框架
  9. JVM之垃圾收集机制四种GC算法详解
  10. 腾讯技术直播间 | 轻量产品思维!手把手教你搭建在线甲醛监测系统