为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

大整数运算

2017-11-10 9页 doc 22KB 11阅读

用户头像

is_983143

暂无简介

举报
大整数运算大整数运算 #include #include #define N 1000 int fenge(char str[],int d[])//从右端开始每四位转换成一个四位整数存入d[N-1,N-2...j],函数返回最高位下标j { int i,j,len=strlen(str); for(i=0;i=0;i=i-4) //从右端开始每四位转换成一个四位整数存入d[j] d[j--]=(str[i]-48)+(str[i-1]-48)*10+(str[i-2]-48)*100+(str[i-3]-48)*10...
大整数运算
大整数运算 #include #include #define N 1000 int fenge(char str[],int d[])//从右端开始每四位转换成一个四位整数存入d[N-1,N-2...j],数返回最高位下标j { int i,j,len=strlen(str); for(i=0;i=0;i=i-4) //从右端开始每四位转换成一个四位整数存入d[j] d[j--]=(str[i]-48)+(str[i-1]-48)*10+(str[i-2]-48)*100+(str[i-3]-48)*1000; //处理左端不足四位的情况 if(i==0) d[j--]=str[i]-48; else if(i==1) d[j--]=(str[i]-48)*10+str[i-1]-48; else if(i==2) d[j--]=(str[i]-48)*100+(str[i-1]-48)*10+(str[i]-48); return j+1; } void dtos(int d[],int k,char str[]) { //将整型数组c转化为字符串s int i; char tempstr[10]; sprintf(str,"%d",d[k]); //把最高位转化为字符串赋给s,因为最高位不用补0 for(i=k+1;i=k;i--) { x=a[i]+b[i]+y; c[i]=x%10000; y=x/10000; } //若最高位有进位 if(y>0) { k--; c[k]=y; } //将整型数组c转化为字符串s dtos(c,k,s); } void sub(char s1[],char s2[],char s[])//求s1-s2的差存入s { int a[N],b[N],c[N],k1,k2,k,len1,len2; int i,flag=1; char str[N]; len1=strlen(s1);len2=strlen(s2); if(strlen(s1)==0) //被减数为0 { strcpy(s,"-"); strcat(s,s2); return; } if(strlen(s2)==0) //减数为0 { strcpy(s,s1); return; } if(len1=k1;i--) { if(a[i]=k2;i--)//让b[i](i=N-1,...k2)乘以a然后错位累加 { //b[i]乘以a的结果暂存d中 k3=i; y=0; //y为进位 for(j=N-1;j>=k1;j--) { x=(long)b[i]*a[j]+y; d[k3--]=x%10000; y=x/10000; } if(y>0)d[k3--]=y; //若最高位有进位 k3++; //将d累加在c中 y=0; for(j=i;j>=k3;j--) //因为错位,第i位是b[i]乘a的最低位,不要写成j从N-1 开始 { x=c[j]+d[j]+y; c[j]=x%10000; y=x/10000; } if(y>0) { k3--; c[k3]=y; } } //将整型数组c转化为字符串s dtos(c,k3,s); } int main() { char s1[N],s2[N],s[N]; scanf("%s%s",s1,s2); add(s1,s2,s); printf("%s\n",s); sub(s1,s2,s); printf("%s\n",s); mul(s1,s2,s); printf("%s\n",s); return 0; }
/
本文档为【大整数运算】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索