【高精度算法】A+B
来源:互联网 发布:淘宝一键复制怎么用 编辑:程序博客网 时间:2024/05/17 04:46
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>char s[10010];int a[10010],b[10010],c[10010];int x[10010],y[10010],z[10010];int main(){ int i,j,k,m,n; int alen,blen,clen,xlen,ylen,zlen,xs; gets(s); alen=0; for(i=0;i<strlen(s);i++){ if(s[i]=='.'){ xs=i+1; break; } c[++alen]=s[i]-'0'; } for(i=1;i<=alen;i++)a[i]=c[alen-i+1]; xlen=0; for(i=1;i<strlen(s)-alen;i++)x[++xlen]=s[i+xs-1]-'0'; gets(s); blen=0; for(i=0;i<strlen(s);i++){ if(s[i]=='.'){ xs=i+1; break; } c[++blen]=s[i]-'0'; } for(i=1;i<=blen;i++)b[i]=c[blen-i+1]; ylen=0; for(i=1;i<strlen(s)-blen;i++)y[++ylen]=s[i+xs-1]-'0'; zlen=xlen>ylen?xlen:ylen; for(i=1;i<=zlen;i++){ z[i]=x[i]+y[i]; } for(i=zlen;i>=1;i--){ if(z[i]>=10){ z[i]-=10; z[i-1]++; } } clen=alen>blen?alen:blen; c[1]=a[1]+b[1]+z[0]; for(i=2;i<=clen;i++){ c[i]=a[i]+b[i]; } for(i=1;i<clen;i++){ if(c[i]>=10){ c[i]-=10; c[i+1]++; } } for(i=clen;i>=1;i--)printf("%d",c[i]); printf("."); for(i=1;i<=20;i++)printf("%d",z[i]); return 0;}
0 0
- 【高精度算法】A*B
- 【高精度算法】A+B
- 【高精度算法】A+B
- 【高精度算法】A/B 高精度初以高精度保留余数
- 【高精度算法】A*B 加强版
- 【高精度算法】A+B 加强版
- 【高精度算法】A/B 高精度除以低精度 保留小数
- 1381 a*b 高精度
- 高精度大数A+B
- A+B Problem 高精度
- A + B高精度
- a+b(高精度)
- 高精度 A*B Problem
- 高精度 A+B Problem
- 高精度 A-B Problem
- a+b高精度
- A+B高精度问题
- a+b 高精度
- Core Animation 之 CALayer
- hdu 2309 ICPC Score Totalizer Software
- MySQL Split String Function
- android,去掉标题栏+++全屏显示
- Android 通过ViewPager实现广告轮播效果
- 【高精度算法】A+B
- 在TableLayout中使用TableRow对象来定义多行
- 以CSDN之父之名,欢迎自己
- php学习第二天:代码重构
- Linux命令下连接和搭建PPTPD-VPN
- Oracle数据库恢复案例
- 进程、作业和进程组
- sqlserver2008迁移到oracle11gR2
- 关于Spark 1.5 版本中Spark自己管理内存而不是由Java管理内存的解释