C语言长整数运算

上传人:新** 文档编号:506225305 上传时间:2024-01-30 格式:DOC 页数:4 大小:56.50KB
返回 下载 相关 举报
C语言长整数运算_第1页
第1页 / 共4页
C语言长整数运算_第2页
第2页 / 共4页
C语言长整数运算_第3页
第3页 / 共4页
C语言长整数运算_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言长整数运算》由会员分享,可在线阅读,更多相关《C语言长整数运算(4页珍藏版)》请在金锄头文库上搜索。

1、#include#include/加法#defineN500voidplus()charstraN,strbN;/输入两个字符型的数intnumaN,numbN,cN,len,i;cout请输入要进行加法运算的两个长整数endl;cinstrastrb;len=strlen(stra)strlen(strb)?strlen(stra):strlen(strb);for(i=0;istrlen(stra);i+)numastrlen(stra)-1-i=strai-0for(i=strlen(stra);ilen;i+)numai=0;for(i=0;istrlen(strb);i+)numbs

2、trlen(strb)-1-i=strbi-0for(i=strlen(strb);ilen;i+)numbi=0;for(i=0;ilen;i+)ci=numai+numbi;clen=0;for(i=0;ilen-1;i+)ci+1=ci+1+ci/10;ci=ci%10;if(clen!=0)coutclen;for(i=len-1;i=0;i-)coutci;coutendl;/把a由字符转换成数,并存储在数组中/把b由字符转换成数,并存储在数组中/c=a+b并把c的可能的最高位设为/把c数组中的数全部转成一位数,大于则向上进/输出c,若最高位为则不输出voidminus()/减法ch

3、arstraN,strbN;intnumaN,numbN,cN,len,i,flag=0;coutstrastrb;len=strlen(stra)strlen(strb)?strlen(stra):strlen(strb);for(i=0;istrlen(stra);i+)/把a由字符转换成数,并存储在数组中numastrlen(stra)-1-i=strai-0;for(i=strlen(stra);ilen;i+)numai=0;for(i=0;ilen;i+)coutnumai;coutendl;for(i=0;istrlen(strb);i+)/把b由字符转换成数,并存储在数组中nu

4、mbstrlen(strb)-1-i=strbi-0;for(i=strlen(strb);ilen;i+)numbi=0;for(i=0;ilen;i+)coutnumbi;coutendl;for(i=0;istrlen(stra);i+)/c=a-b,c的每一位等于a+10-b,a的每一位向下退加ci=numai+10-numbi;numai+1-;for(i=0;istrlen(stra)-2;i+)/整理c,每一位大于的向上一位置进ci+1=ci+1+ci/10;ci=ci%10;cstrlen(stra)-1=cstrlen(stra)-1%10;for(i=strlen(stra

5、)T;i=0;i-)/输出c,从第一个不为的位置输出if(ci!=0)flag=1;if(flag=1)coutci;coutendl;voidmultiply()charstraN,strbN;intnumaN,numbN,i,j,k,dm=0;intcNN,d2*N;coutstrastrb;for(i=0;iN;i+)for(j=0;jN;j+)cij=0;for(i=0;i2*N;i+)/把a由字符转换成数,并存储在数组中/把b由字符转换成数,并存储在数组中/把c存放在一个二维数组中di=0;for(i=0;istrlen(stra);i+)numai=strai-0;for(i=0;

6、istrlen(strb);i+)numbi=strbi-0;for(i=0;istrlen(strb);i+)for(j=0;jstrlen(stra);j+)cij=numbi*numaj;for(k=0;kstrlen(stra);k+)/把二维数组中在同一位上的数相加放在一位数组d中for(i=1;istrlen(strb);i+)for(j=0;jstrlen(stra);j+)if(k-i-j)=0)c0k+=cij;ddm+=c0k;for(k=(strlen(stra)-strlen(strb)+1);kstrlen(stra);k+)for(i=1;i(strlen(strb

7、)-1);i+)for(j=0;jstrlen(stra);j+)if(strlen(strb)-1+k-i-j)=0)cstrlen(strb)-1k+=cij;ddm+=cstrlen(strb)-1k;for(i=(dm-1);iO;i)/整理d,每一位大于的向上一位置进di-1=di-1+di/10;di=di%10;coutendlendl;cout两者之积为:endl;for(i=0;idm;i+)coutdi;coutendlendl;intmain()intchoice;while(1)coutn;coutnttcoutn;coutnttcoutnttcoutnttcoutnttcoutn;coutchoice;switch(choice)case1:长整数的运算1长整数的加法2长整数的减法3长整数的乘法0退出请选择菜单号(-3)进行操作:;/输入一个选择功能菜单plus();break;case2:minus();break;case3:multiply();break;case0:return0;return1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号