POJ2389: 大数字乘法算法
2014-12-26
大数字乘法算法一般是采用模拟"小学生乘法演算过程”方法。
主要算法思想:
1. 乘数a第i)位与乘数b第j)位数字相乘,并将该乘积结果放到乘积结果数组product的第(i+j-1)位中;
2. 检查product的第(i+j-1)位中储存的数字是否超过或等于10,若是,则“取余并且进位”。
细节参考代码:
- #include<iostream>
- #include<cstring>
- using namespace std;
- void solve(string a,string b){
- int a_length=a.length();
- int b_length=b.length();
- int *arr_a=new int[a_length+];
- int *arr_b=new int[b_length+];
- for(int i=;i<=a_length;i++){
- arr_a[i] = a[i-]-'';
- }
- for(int i=;i<=b_length;i++){
- arr_b[i] = b[i-]-'';
- }
- int *product=new int[a_length+b_length];
- int product_length = a_length+b_length-;
- for(int i=;i<=product_length;i++) product[i]=;
- for(int i=a_length;i>=;i--){
- for(int j=b_length;j>=;j--){
- int temp = arr_a[i]*arr_b[j];
- int c = product[i+j-]+temp;
- product[i+j-] = c%;
- product[i+j-] += c/;
- }
- }
- if(product[]!=) cout<<product[];
- for(int i=;i<=product_length;i++){
- cout<<product[i];
- }cout<<endl;
- }
- int main(){
- string a,b;
- while(cin>>a>>b){
- solve(a,b);
- }
- return ;
- }
POJ2389: 大数字乘法算法的更多相关文章
- 【老鸟学算法】大整数乘法——算法思想及java实现
算法课有这么一节,专门介绍分治法的,上机实验课就是要代码实现大整数乘法.想当年比较混,没做出来,颇感遗憾,今天就把这债还了吧! 大整数乘法,就是乘法的两个乘数比较大,最后结果超过了整型甚至长整型的最大 ...
- [大整数乘法] java代码实现
上一篇写的“[大整数乘法]分治算法的时间复杂度研究”,这一篇是基于上一篇思想的代码实现,以下是该文章的连接: http://www.cnblogs.com/McQueen1987/p/3348426. ...
- 大整数乘法python3实现
因为python具有无限精度的int类型,所以用python实现大整数乘法是没意义的,可是思想是一样的.利用的规律是:第一个数的第i位和第二个数大第j位相乘,一定累加到结果的第i+j位上,这里是从0位 ...
- [SOJ]寻找第k大数字(numberk)
Description 经过长时间的筹备工作,在Jourk,Ronny,Plipala,阿长,阿沈等人的努力下,DM实验室建立起自己的系列网站,其中包括三个大板块:DMOJ首页.DMOJ论坛.DMOJ ...
- MapReduce实现大矩阵乘法
来自:http://blog.csdn.net/xyilu/article/details/9066973 引言 何 为大矩阵?Excel.SPSS,甚至SAS处理不了或者处理起来非常困难,需要设计巧 ...
- JavaScript 数据结构与算法之美 - 十大经典排序算法汇总(图文并茂)
1. 前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 ...
- 一文搞定十大经典排序算法(Java实现)
本文总结十大经典排序算法及变形,并提供Java实现. 参考文章: 十大经典排序算法总结(Java语言实现) 快速排序算法—左右指针法,挖坑法,前后指针法,递归和非递归 快速排序及优化(三路划分等) 一 ...
- 初识Java(Java数字处理类-大数字运算)
一.大数字运算 在 Java 中提供了大数字的操作类,即 java.math.BigInteger 类与 java.math.BigDecimal 类.这两个类用于高精度计算,体重 BigInteg ...
- 十大经典排序算法最强总结(含JAVA代码实现)(转)
十大经典排序算法最强总结(含JAVA代码实现) 最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每 ...
随机推荐
- c#做动态(gif)中文验证码
无意中在国外论坛发现一个gif动画类,我使用它来制作了一个动态验证码 : 一:首先新建一个类库 1:新建AnimatedGifEncoder类 using System; using System.C ...
- linux samba.tar.gz安装和配置
安装步骤: 1. tar -xzvf samba-3.5.10.tar.gz2. cd samba-3.5.103. cd source34. ./autogen.sh 如果出现:./autogen ...
- linux查看历史命令history
在linux下,我们有可能需要查看最近执行过的命令(历史命令),我们可以进行如下操作: # 显示使用过的所有历史命令 $ history # 显示最近使用的5个命令 $ history 5 我们可以通 ...
- Linux资源监控_Nmon
性能测试中,各个服务器资源占用统计分析是一个很重要的组成部分,通常我们使用nmon这个工具来进行监控以及监控结果输出. 一. 在监控阶段使用类似下面的命令 ./nmon -f write_3s_20v ...
- 数据段、代码段、堆栈段、BSS段
在linux中,进程在内存中一般会分为5个段,用来存放从磁盘载入的程序代码,等. 这五个段分别是: BSS段: 通常用来存放程序中未初始化的全局变量的一块内存区域.属于静态内存分配. 问题:全局变量不 ...
- Yii CActiveForm
http://blog.sina.com.cn/s/blog_685213e70101mo4i.html 文档: http://www.yiiframework.com/doc/api/1.1/CAc ...
- Error Code: 1175
用mysql workbench 更新一个表的时候报如下异常: Error Code: 1175. To disable safe mode, toggle the option in Prefere ...
- xp宿主机和VMware下Ubuntu12.04共享文件夹
VMware下Windows与Linux共享文件的方法有很多,比如Samba等等,我这里介绍简单地通过设置VMware来达到共享的目的. 打开VMware的设置,在"options" ...
- CruiseControl.net
CruiseControl.net 使用CruiseControl.NET进行自动化构建总结 http://blog.csdn.net/chenbin520/article/details/10112 ...
- php 对象调用方法
static union _zend_function *zend_std_get_method(zval **object_ptr, char *method_name, int method_le ...