高精度大数加法
来源:互联网 发布:求数组平均值 编辑:程序博客网 时间:2024/05/16 12:45
带小数点的长高精度型相加
#include <iostream>#include <stdio.h>#include <cstring>using namespace std;char a[500];char b[500];int c[500];char xa[500];char za[500];char xb[500];char zb[500];char xc[500];int temp=0;int sun=0;char k[10];void solvexiao( char x[],char y[]){ if(strlen(x)<strlen(y)) swap(x,y); int lena=strlen(x)-1; int lenb=strlen(y)-1; int i,j; for(i=lena;i!=lenb;i--) { xc[i]=x[i]-'0'; } for(i;i>=0;i--) xc[i]=x[i]-'0'+y[i]-'0'; int tep=0; for(int i=lena;i>=1;i--) { xc[i-1]+=xc[i]/10; xc[i]%=10; } if(xc[0]>=10) { temp=1; xc[0]-=10; } for(int i=0;i<=lena;i++) { xc[i]+='0'; if(xc[i]!='0') sun=1; }}void solveda(char x[],char y[]){ if(strlen(x)<strlen(y)) swap(x,y); if(temp) x[strlen(x)-1]++; int lena=strlen(x)-1; int lenb=strlen(y)-1; int i,j; for( i=lena,j=lenb;j>=0;i--,j--) { c[i]=x[i]-'0'+y[j]-'0'; } for(i;i>=0;i--) c[i]=x[i]-'0'; int tep=0; for(int i=lena;i>=0;i--) { if(i!=0) { c[i-1]+=c[i]/10; c[i]%=10; } } for(int i=0;i<=lena;i++) printf("%d",c[i]);}int main(){ while(~scanf("%s%s",&a,&b)) { memset(za,0,sizeof(za)); memset(zb,0,sizeof(zb)); memset(xa,0,sizeof(xa)); memset(xb,0,sizeof(xb)); memset(xc,0,sizeof(xc)); memset(c,0,sizeof(c)); memset(k,0,sizeof(k)); temp=0; sun=0; int flaga=0; int cot=0; for(int i=0;i<strlen(a);i++) { if(a[i]=='.') { flaga=i+1; break; } za[cot++]=a[i]; } cot=0; for(int i =flaga;i<strlen(a);i++) { xa[cot++]=a[i]; } int flagb=0; cot=0; for(int i=0;i<strlen(b);i++) { if(b[i]=='.') { flagb=i+1; break; } zb[cot++]=b[i]; } cot=0; for(int i =flagb;i<strlen(b);i++) { xb[cot++]=b[i]; } if(flaga!=0&&flagb!=0) { solvexiao(xa,xb); } else { if(flaga!=0&&flagb==0) solvexiao(xa,k); if(flaga==0&&flagb!=0) {solvexiao(k,xb); } } solveda(za,zb); if(sun) { cout<<"."; int i; for( i=strlen(xc)-1;i>=0;i--) { if(xc[i]!='0') break; } for(int j=0;j<=i;j++) cout<<xc[j]; } cout<<endl; } return 0;}
0 0
- 高精度运算 大数加法
- 大数(高精度)加法
- 高精度大数加法
- 大数,高精度计算---大数加法
- 高精度--大数加法 luogu 1601
- 大数加法-Tsinsen A1087.高精度加法
- 4、 大数,高精度计算---大数加法
- 大数加法 减法 乘法 除法 高精度四则运算
- 大数加法 减法 乘法 除法 高精度四则运算
- 高精度 大数加法 乘法 除法 幂 模板
- akoj-1218-高精度加法(大数问题)
- n个大数加法(高精度)
- 高精度 大数加法 乘法 除法 幂 模板
- 大数的加法和乘法,高精度
- 高精度加法——大数相加
- 大数高精度加减乘除 51nod 1005 大数加法
- 整数大数模拟 高精度加法 高精度减法 高精度乘法 高精度除法 c/c++ java
- 【高精度计算 04】 大数加法与树结合
- FarManager3 打开界面混乱问题
- 139. Word Break
- android判断网络连接状态
- C++11中std::forward的使用
- golang 调用cmd下程序隐藏黑窗口-方法1
- 高精度大数加法
- HDU5901大素数模板
- android -调用系统相机录像
- Vue.js实现表格渲染
- 第四周项目5--多项式求和
- 1020 月饼
- 【机器学习】机器学习泛泛之谈
- JBoss学习
- mac mysql5.7版本密码忘记,无法登录