大整数的乘法实习报告

大整数的乘法实习报告

ID:33015096

大小:57.04 KB

页数:11页

时间:2019-02-19

大整数的乘法实习报告_第1页
大整数的乘法实习报告_第2页
大整数的乘法实习报告_第3页
大整数的乘法实习报告_第4页
大整数的乘法实习报告_第5页
资源描述:

《大整数的乘法实习报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、湖南涉外经济学院计算机科学与技术专业《算法设计与分析》课程实验报告班级:学号:姓名:教师:成绩:2012年5月【实验目的】1掌握设计有效算法的分治策略2利用软件的方法来实现大整数的算术运算【系统环境】Windows7平台【实验工具】VC++6.0英文企业版【问题描述】描述:由于现在的许多方而需要在计算结果中要求精确地得到所有位数上的数字,就必须用软件的方法来实现大整数的运算。其中一般都通过数组来实现。例:5464*1231其结果是:6524184【实验原理】1、开始时的思路:1>.弄2个string

2、类型的变量来获取乘数a与被乘数b2>.需要用到string类型的变量时再调用转换函数3>•再定义个2维数组来装a*b的积、定义个d数组装最终结果4>・写一个乘法和加法函数用来实现上述功能2、例子:wE:^stSDebugdazs.exeR*餐餐餐餐餐餐餐餐餐餐餐斗匕賓餐餐餐餐餐餐餐餐餐餐覺覺餐'螯1△悲鑿二严6?八疋‘请1324456?和1324相乘结果是:5836608Pressanykeytocontinue【源程序代码】#includc〈iostTcani>#include

3、usingnamespacestd;voidMUL_max(stringa,intla,stringb,intlb,int**c);//相乘函数voidADDmax(int*d,int**c,intla,intlb);//相加函数char*Zhuanll(string);voidmain(){stringa;stringb;int**c二NULL;int*d=NUl±;intla二0,lb二0;inti二0,j二0,k二0;cout«〃************大整数乘法***************

4、〈〈end1;cout«z,请输入乘数:";cin>>a;cout«〃请输入被乘数:〃;cin>>b;la=a.length();lb=b.length();//分配2维C数组,存储数组a和b的乘积c=newint*[la];for(k=0;k<1a;k++)c[k]二newint[lb+1];〃分配数组d用于存储最终结果d=newint[la+lb+1];for(i=0;i

5、for(i=0;i

6、delete[la]c;delete[]d;}voidMULmax(stringa,intla,stringb,intlb,int**c){intmid=0,i=0,j=0;intk=0;intnum_a=0,num_b=0;char*chara=NULL,*charb=NULL;char_a=ZhuanH(a);//将String转化为charchar_b=ZhuanH(b);//开始循环相乘la*lb次for(i=la-l;i>=0;i--)for(j=lb-l;j>=0;j—){num_a=a

7、[i]-48;num_b=b[j]-48;if((k=num_a*num_b)>=10)//判断乘积是否有进位{if(mid!=0)//判断前一次相乘是否有进位c[i][j+1]二k%10+mid;elsec[i][j+l]二k%10;mid=k/10;}else//没有进位{if(mid!=0)//判断前一次相乘是否有进位c[i][j+1]二k+mid;elsec[i][j+l]=k;mid二0;}}if(mid!=0)c[i][0]二k/10;//如果乘数个位和被乘数相乘,最后有进位//数组相加

8、函数voidADDmax(int*d,int**c,intla,intlb){inti二0,j二0;intmid=0;intnum_a=0,num_b=0;intadd=0,midnum二0;//将相乘得到的二维数组C各行错位相加,得到一位数组dfor(i=la-l;i>=0;i--)for(j=lb;j>=0;j—){num_a=d[i+j+l];num_b=c[i][j];add=numa+numb;MMrif(midnum==l)d[i+j+l]=add%10+

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。