当前位置: 首页 > news >正文

大整数相乘

大整数相乘是个被我们听烂了的经典算法题之一,解法各不同,今天在公司论坛上看到一个挺高端的算法思路,记录并分享下。

如下图示例:999*99的计算方法。

    上图是按照我们小学列算式做乘法的基本方法,但是不考虑进位,只是把算出的结果按相应的位置存放着。

    以图所示为例,将计算结果依次存放在一个result数组中。第一轮存下3个81;第二轮从result数组的第二个元素开始存储,并且和该位置上原来的元素累加,依次计算到第二轮结束,如果有第三轮,还是这样的方式,result数组的第3个位置开始存储,并和之前的数字累加,bulabulabula,直到计算结束,会有个结果存放在result数组中。以本题为里,result = {81,162,162,81}。

    计算结束后,接下来以此处理result数组的每个元素,result[0]=81,81%10=1,81/10=8(进位),那么处理完之后result[0]=1,result[1]=162+8=170,后面的元素不变;下面处理result[1] = 170,170%10=0,170/10=17(进位),那么处理完之后result[0]=1,result[1]=0,result[2]=162+17=179,像这样以此处理下去,最后,result={1,0,9,8,9},反转result,即为你想要得到的最终计算结果了。

    这个只是思路,且result数组得是个挺大的数组,具体用C代码调试就看你的代码水平了。希望我描述的你可以看明白,有更好更简单易懂的方式,欢迎交流哦!

转载于:https://www.cnblogs.com/stoneJin/p/3491377.html

相关文章:

  • 32位机器的LowMemory
  • hadoop的序列化和压缩
  • linq转载
  • SpeedPHP关于一对一和一对多关联关系的建立 model建立
  • oracle 10g 学习之.NET使用Oracle数据库(14)
  • nm 命令 程序符号信息查看
  • HBase之八--(1):HBase二级索引的设计(案例讲解)
  • 记录上锁
  • Markdown学习笔记
  • 《需求工程》阅读随笔-1.做什么和怎么做
  • curl_errno错误码说明
  • 《Genesis-3D开源游戏引擎完整实例教程-2D射击游戏篇03:子弹发射》
  • 交换机的link-dependency链路依赖功能
  • 打开FTP服务器上的文件夹时发生错误,请检查是否有权限访问该文件夹
  • 解决:导入第三方jar包后,仍然出现java.lang.NoClassDefFoundError的错误
  • 【Linux系统编程】快速查找errno错误码信息
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Date型的使用
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • nfs客户端进程变D,延伸linux的lock
  • Node 版本管理
  • Python打包系统简单入门
  • vuex 学习笔记 01
  • Yeoman_Bower_Grunt
  • 如何在 Tornado 中实现 Middleware
  • 深入 Nginx 之配置篇
  • 试着探索高并发下的系统架构面貌
  • 一天一个设计模式之JS实现——适配器模式
  • UI设计初学者应该如何入门?
  • 大数据全解:定义、价值及挑战
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • !!java web学习笔记(一到五)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #162 (Div. 2)
  • #pragma multi_compile #pragma shader_feature
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (+4)2.2UML建模图
  • (14)Hive调优——合并小文件
  • (done) 两个矩阵 “相似” 是什么意思?
  • (二)正点原子I.MX6ULL u-boot移植
  • (九)One-Wire总线-DS18B20
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .gitignore文件设置了忽略但不生效
  • .Net 6.0 处理跨域的方式
  • .net mvc部分视图
  • .net 调用php,php 调用.net com组件 --
  • .Net 垃圾回收机制原理(二)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .net快速开发框架源码分享
  • .NET连接数据库方式
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .net网站发布-允许更新此预编译站点