大整数乘法,递归.pptVIP

  • 47
  • 0
  • 约2.89千字
  • 约 12页
  • 2019-02-21 发布于天津
  • 举报
大整数乘法,递归 问题描述 计算机硬件所能表示的数字位数有限。在有些情况下,我们要处理很大的整数,它无法在计算机硬件能直接表示的范围内进行处理。 因此,需要有效的算法来实现大整数运算。 请设计一个有效的算法,可以进行两个任意位大整数的乘法运算。 2/12 大数乘法、递归 常用方法 循环法 特点:从笔算算法中提出,思想相对简单,但位数较大时,乘法次数多,效率较低 分治递归法 特点:采用分治递归思想,较常规方法复杂,但位数较大时,乘法次数少,效率相对高 3/12 大数乘法、递归 循环法 基本思想:将待相乘大整数存入字符串中,按位存入较大的数组,循环按位相乘并累加。最后将进位分离并加到相邻高位上。 主要函数: GetDigits(int*a,char*s) 将字符串形式的数据按位存入整型数组中 Multiply(int *a,int *b,int *c) 按位实现乘法运算,将a*b的结果存入数组c中 4/12 大数乘法、递归 主要函数示例 /*把字符串形式的数字按位存放到数组*/ void GetDigits(int *a, char *s) { int i; char digit; int len=strlen(s); for(i=0;iN;i++) //数组初始化 *(a+i)=0; for(i=0;ilen;i++

文档评论(0)

1亿VIP精品文档

相关文档