大整数的乘法问题
来源:互联网 发布:大众软件 1995 pdf 编辑:程序博客网 时间:2024/04/29 05:02
如果两个很大的整数相乘,结果无法以简单的数据类型存储,可以假设将每位分开存储到数组里面,本例暂不考虑数字存放时的空间优化问题。
#include<iostream>#include<string.h>#include<memory.h>using namespace std;void multi(int *a,int asize,int *b,int bsize);int main(){ int a[]={1,1,1,1}; int b[]={1,1,1,1}; multi(a,sizeof(a)/sizeof(int),b,sizeof(b)/sizeof(int)); return 0;}void multi(int *a,int asize,int *b,int bsize){ int size = asize + bsize;//乘积的结果不会大于size int *temp = new int[size]; memset(temp,0,sizeof(int)*size); //a分别和b的每一位相乘,结果暂时存在temp中 for(int i=0;i<bsize;++i) { int k = i; for(int j=0;j<asize;++j) { temp[k] +=b[i] * a[j]; ++k; } } for(int i=0;i<size;i++) { if(temp[i]>=10) { temp[i+1] +=temp[i]/10; temp[i] %=10; } } //为size-1,注意数组的范围(第一此时候错写成size,结果只有后面位数是正确的) for(int i=size-1;i>=0;--i) cout<<temp[i]; delete[] temp; return;}
- 大整数的乘法问题
- 大整数的乘法问题
- 大整数的乘法问题
- 大整数乘法问题
- 大整数乘法问题
- 大整数的乘法
- 大整数的乘法
- 大整数的乘法
- 大整数的乘法
- 大整数的乘法
- 大整数的乘法
- 二进制的大整数乘法
- 两个大整数的乘法
- 模拟大整数的乘法
- 大整数的乘法运算
- java大整数的乘法
- 大整数的乘法运算
- 大整数的乘法运算
- SUSE+linux+配置节点间的SSH信任关系
- windows GDI 一 windows style
- TCP/IP 校验和算法简介
- 深入Java虚拟机:JVM中的Stack和Heap
- Linux操作系统基础知识之四:内存管理
- 大整数的乘法问题
- Core Java Day01 2011/10/8
- Xfermodes的扩展应用- 图像擦除和还原效果
- Java获取IP地址
- Oracle 11g R2 install on centos 6
- Java中的IO整理完整版(1)
- 访问控制列表(ACL)
- SAP HANA简介
- HANA全面上市,成为SAP史上用户数量增长最快的产品之一