大整数运算演示程序

大整数运算演示程序

ID:35332109

大小:58.96 KB

页数:7页

时间:2019-03-23

大整数运算演示程序_第1页
大整数运算演示程序_第2页
大整数运算演示程序_第3页
大整数运算演示程序_第4页
大整数运算演示程序_第5页
资源描述:

《大整数运算演示程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、大整数运算一、实验名称:大整数运算二、实验目的:1、掌握超大数运算的一般实现方法三、实验内容:例:编写程序实现两个大的整数的四则运算及大小比较运算。基本思路:用字符数组存放大整数的各个位,以字符串形式输入大整数,逐位而不是整体进行各类运算。由于现实屮数值都是高位在前低位在后,而c语言屮将一个字符串输入到一个字符数组中去时,下标为0的元素存放字符串的第一个字符,亦即以字符串形式将一个多位整数输入到一个字符数组中去吋,0号元素存放的是实际的最高位。为了方便算法的实现,我们将多位大整数输入到字符数组屮去后,先进行逆置,以保证个位存入0号元素,十位存入1号元素……,而在输出时

2、,为了跟现实习惯一致,先逆置后再输出。参考程序:#inelude#include#include〈string.h>#defineN100//逆置,因为计算机中数据的高低位跟现实中的习惯刚好相反voidrevert(chart[]){inti,len;chartemp;len=strlen(t);for(i=l;i<=len/2;i++){temp=t[i-1];t[i-l]=t[len-i];t[len-i]=temp;}}//以字符串形式输入被乘数和乘数voidinput(chara[],charb[]){do{printfC

3、请输入要进行乘法运算的两个整数(单个数不要超%(1位):〃,N);scanf("%s%s",a,b);}while((strlen(a)>N)

4、

5、(strlen(b)>N));//对两个数进行大小比较charcompare(chara[],charb[]){inti,yn,jg;〃现实中一个数值中高位的0对数值的大小无意义,取消for(i=strlen(a)-l;(i>0)&&(a[i]==,O');i—)a[i]二'';for(i=strlen(b)-1;(i>0)&&(b[i]=二'O');i一-)b[i]=,?;if(str1en(a)>strl

6、en(b))return1;elseif(strlen(a)=0)&&(yn==l));i--)if(a[i]>b[ij){jg=l;yn=0;}elseif(a[i]strlen(b))?strlen(a

7、):strlen(b));p=(char*)malloc(len);//进行加法运算z=0;//最低位进位为0for(i=0;i<((str1en(a)=strlen(a))){x二0;y=b[i]-O';}elseif((strlen(a)>strlen(b))&&(i>=strlen(b))){x二a[i]-'O';y二0;}else{x二a[i]-'O';y=b[i]-0,;}sum二x+y+z;z=sum/l0;//

8、计算出卜-一次的进位p[i]=sum%10+,O';〃计算出当前位的和}讥i]=z+,O';p[i+U-';〃取消无用的0while((i>0)&&(p[i]==,O'))讥i--]二',;return(p);}//对两个数实现减法运算,调用时保证a>=bchar*subtract(chara[],charb[]){char^result;intla,lb,len,ai,bi,ti,s,c;〃分配存放差的空间len=14-((strlen(a)>strlen(b))?strlen(a):strlen(b));result=(char*[malloc(len);

9、la=strlen(a)-l;lb二strlen(b)-l;c二0;//c用表示相减时是否出现借位,0:无借位1:有借位ai=bi=ti=O;while(ai<=]a)//注意结朿条件if(bi>lb)s=a[ai++]-'O';elses二a[ai++]-b[bi++];result[ti++]二s-c+'O';if(result[ti-l]<,O')//有借位{result[ti-l]+=10;//当前位加10c二1;//向高位借1}else//无借位c=0;}result[ti]=,';for(ti=la;(ti〉0)&&(result[t

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

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

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