非负整数的高精度加减乘除运算

非负整数的高精度加减乘除运算

ID:15599744

大小:28.00 KB

页数:11页

时间:2018-08-04

非负整数的高精度加减乘除运算_第1页
非负整数的高精度加减乘除运算_第2页
非负整数的高精度加减乘除运算_第3页
非负整数的高精度加减乘除运算_第4页
非负整数的高精度加减乘除运算_第5页
资源描述:

《非负整数的高精度加减乘除运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本程序实现两个非负整数的加减乘除四则高精度运算#include #include usingnamespacestd; #defineSIZE1000 /* 将字符串t逆置,n为t的长度 */ voidreverse(chart[],intn) { inti=0,j=n-1; while(i

2、(两个数相减结果为负) */ intcmp(chars[],chart[]) { chartmp[SIZE]; intls=strlen(s),lt=strlen(t); if(ls>lt

3、

4、ls==lt&&strcmp(s,t)>=0) return1; strcpy(tmp,s); strcpy(s,t); strcpy(t,tmp); return-1; } /* 进行加法运算时每一数位上的范围判断,如果满10了则要向高位进位 */ voidcheck_add(inttmp[],intn,charresult[]) {

5、 inti,j,k=0; for(i=0;i=0;j--) result[k++]=tmp[j]+'0'; result[k]=0; if(i<0)strcpy(result,"0"); } /* 减法运算时对每一位的判断,如果满-11了(注意不是-10)则要向高位借位 */ voidcheck_sub(inttmp[],intn,charresult[])//返

6、回值1表示正,-1表示负 { inti,j,k=0; for(i=0;i0)i--; for(j=i;j>=0;j--) result[k++]=tmp[j]+'0'; result[k]=0; } /* 执行加法运算,result存放结果 */ voidadd(chars[],chart[],charresult[

7、]) { intls=strlen(s); intlt=strlen(t); inti,j,k; inttmp[SIZE*2]={0}; i=ls-1,j=lt-1,k=0; while(i>=0&&j>=0) { tmp[k]=(int)(s[i]-'0')+(int)(t[j]-'0'); i--;j--;k++; } while(i>=0) { tmp[k]=(int)(s[i]-'0'); i--;k++; } while(j>=0) { tmp[k]=(int)(t[j]-'0'); j--;k++; } chec

8、k_add(tmp,k,result); } /* 执行减法运算,注意如果被减数比减数小时要交换两个数的位置,并给结果添加一个负号 */ intsub(chars[],chart[],charresult[])//返回值1表示正,-1表示负 { intls=strlen(s); intlt=strlen(t); inti=ls-1,j=lt-1,k=0; inttmp[SIZE*2]={0}; intret=cmp(s,t); if(ret==-1) { ret=i; i=j; j=ret; ret=-1; } while(

9、i>=0&&j>=0) { tmp[k++]=s[i]-t[j]; i--,j--; } while(i>=0)tmp[k++]=(int)(s[i--]-'0');//在比较s,t大小之后不会出现j>=0的情况 check_sub(tmp,k,result); if(ret==-1) { chartmp2[SIZE]; strcpy(tmp2,s); strcpy(s,t); strcpy(t,tmp2); } returnret; } /* 执行乘法运算,最后两个reverse函数是为了复原对s和t做出的改变,避免影响后

10、面的除法运算的结果,如果单独执行乘法运算可以不要 */ voidmul(chars[],chart[],charresult[]) { intls=strlen(s); intlt=strlen(t); reverse(s,ls); reverse(t,lt); inttmp[SIZE*2

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

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

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