tceic.com
学霸学习网 这下你爽了
相关标签
当前位置:首页 >> 学科竞赛 >>

高精度加法--(万进制)


#include<stdio.h> #include<stdlib.h> #include<string.h> #define base 10000 char a[25010],b[25010]; int add[25610],x[25610],y[25610]; int flag=1; void out (int clen) { int p,i; for(i=clen;i>=1;i--) { if(add[i]<1000&&flag==0) { p=add[i]; if(p==0)p++; while(p<1000) { printf("0");p*=10;} printf("%d",add[i]); } else printf("%d",add[i]); flag=0; } puts(""); } int main() { int i,j,k,m,n,p=0,ai=0,bi=0,count=0; char c;i=0; c=getchar(); while(c!=' ') { a[i++]=c; c=getchar(); } gets(b); int alen,blen,clen; alen=strlen(a); blen=strlen(b); memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); m=alen-1;

int an=alen/4; int ap=alen%4; for(i=1;i<=an;i++) { k=1000; for(j=3;j>=0;j--){ x[i]+=(a[m-j]-'0')*k;k/=10;} m-=4; } k=1; if(ap) { for(j=1;j<ap;j++)k*=10; for(j=ap-1;j>=0;j--){ x[i]+=(a[m-j]-'0')*k;k/=10;} } int bn=blen/4; int bp=blen%4; m=blen-1; for(i=1;i<=bn;i++) { k=1000; for(j=3;j>=0;j--){ y[i]+=(b[m-j]-'0')*k;k/=10;} m-=4; } k=1; if(bp) { for(j=1;j<bp;j++)k*=10; for(j=bp-1;j>=0;j--){ y[i]+=(b[m-j]-'0')*k;k/=10;} } if(ap)ai=1; if(bp)bi=1; alen=an+ap; blen=bn+bp; clen=alen>blen?alen:blen; memset(add,0,sizeof(add)); for(i=1;i<=clen;i++) { count+=x[i]+y[i]; add[i]=count%base; count/=base;

} while(count) { add[++clen]=count; count/=base; } while(!add[clen])clen--; out(clen); system("pause"); return 0; }


推荐相关:

基础代码--高精度算法

基础代码--高精度算法 高精度加法 高精度减法 高精度乘低精度 高精度乘高精度 高精度除低精度 高精度比较 万进制运算 一、高精度算法要点 1.数据存储(数组) 2...


高精度运算(C++)

万进制高精度数的输出问题: 采用万进制来进行高精的加、减、乘三种运算,虽然提高了程序的执行效率,但在输出时却带来了 问题,如在加法示例中的结果从高位到低位...


高精度整数加法问题--已测试

2. 高精度整数加法(60 分) 问题描述: 在计算机中,由于处理器位宽限制,只能处理有限精度的十进制整数加减法,比如在 32 位 宽处理器计算机中, 参与运算的操作数...


4种常见的动态规划模型

注意:由于此题的数据规模比较大,所以要用到高精度加法,估计最大的数据可以达到 73位,为节约程序时间和空间效率,还采用了万进制高精度加法。参考程序 如下: ...


高精度运算(加减)

高精度运算(加减)_数学_自然科学_专业资料。安阳一中信息学奥赛辅导资料 高精度...1353+3531=4884 在这里的一步是指进行了一次 N 进制加法,上例最少用了 4...


高精度加法

程序设计挑战式课程设计极限挑战挑战,不是为着征服自然,而是为着突破自我,超越自我 生命有极限,思想无极限,高度有极限,境界无极限 作业名称: 高精度加法 学班学姓...


高精度计算

高精度计算朴素高精度由于待处理的数据超过了任何一种数据类型所能容纳的范围, ...进制整数的加法和减法与前面的十进制运算方法类似,只是进制变成了 10000 进制。 ...


常用算法经典代码 (1)

(head,mid-1); } 六、高精度加法 #include<iostream> #include<cstring> ...优化:万进制 #include<iostream> #include<cstring> using namespace std; void...


1128上机练习

问题三:没有对数据规模有足够估计,用数组表示十进制大整数而非万进制数,结果超 时。 2、高精度浮点数加法参考代码: 高精度浮点数加法参考代码: 高精度浮点数...


Free Pascal——数学问题(2)

与之前的高精度加法, 高精度减法有区别 加法对于 c>0 只需处理一次(加法的 ...7.加大进制:使用万进制; const maxn=9999; lm=25; type arr=array[1..lm...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com