高精度-小数加法【模板】
来源:互联网 发布:佳能ip1180清零软件 编辑:程序博客网 时间:2024/06/06 09:53
题目链接:A+B Problem IV
计算400位以内的小数加法
模板:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;char str1[405],str2[405];int pre1[405],pre2[405],suf1[405],suf2[405],point1,point2;int main(){ while(~scanf("%s%s",str1,str2)) { memset(pre1,0,sizeof pre1); memset(pre2,0,sizeof pre2); memset(suf1,0,sizeof suf1); memset(suf2,0,sizeof suf2); point1=strlen(str1); point2=strlen(str2); for(int i=0;str1[i];i++) { if(str1[i]=='.') { point1=i; break; } pre1[i]=str1[i]-48; } if(point1!=strlen(str1)) { for(int i=point1+1;str1[i];i++) suf1[i-point1-1]=str1[i]-48; } //----------------------- for(int i=0;str2[i];i++) { if(str2[i]=='.') { point2=i; break; } pre2[i]=str2[i]-48; } if(point2!=strlen(str2)) { for(int i=point2+1;str2[i];i++) suf2[i-point2-1]=str2[i]-48; } //suf相加 int up_to_pre=0; for(int i=400;i>=0;i--) { suf1[i]+=suf2[i]; if(i==0) { up_to_pre=suf1[0]/10; suf1[0]%=10; } else if(suf1[i]>9) { suf1[i-1]+=suf1[i]/10; suf1[i]%=10; } } //pre反转 for(int i=0;i<point1/2;i++) swap(pre1[i],pre1[point1-i-1]); for(int i=0;i<point2/2;i++) swap(pre2[i],pre2[point2-i-1]); //pre相加 pre1[0]+=up_to_pre; for(int i=0;i<point1 || i<point2;i++) { pre1[i]+=pre2[i]; if(pre1[i]>9) { pre1[i+1]+=pre1[i]/10; pre1[i]%=10; } } //输出pre int top=0; for(int i=400;i>=0;i--) { if(pre1[i]) { top=i; break; } } for(int i=top;i>=0;i--) printf("%d",pre1[i]); //输出suf int tail=-1; for(int i=400;i>=0;i--) { if(suf1[i]) { tail=i; break; } } if(tail!=-1) { printf("."); for(int i=0;i<=tail;i++) printf("%d",suf1[i]); } printf("\n"); } return 0;}
阅读全文
0 0
- 高精度-小数加法【模板】
- 小数高精度加法
- 高精度加法模板
- 高精度加法模板
- c高精度加法模板
- 高精度加法模板
- 高精度之加法模板
- 高精度加法模板
- 高精度加法模板
- HDU-高精度小数加法-最大400位
- 我的高精度加法模板
- 高精度加法模板(string类,char)
- 高精度 大数加法 乘法 除法 幂 模板
- 高精度 大数加法 乘法 除法 幂 模板
- 高精度加法(非负)模板
- 大数与小数模板(乘法,加法)
- hdu 1753 大明A+B(高精度小数加法)
- HDOJ 1753 大明A+B (高精度的小数加法 java )
- BZOJ 1407 exgcd
- 设计模式笔记--设计模式比较
- RecycleView的刷新,点击监听以及下划线设置
- netkit-ng安装使用
- SqlServer2005在win7系统64位上卸载重装
- 高精度-小数加法【模板】
- $.each()和$().each(),以及 forEach ()的用法
- 【编程练习】单链表逆序Java实现
- django中的用户认证
- IELTS 11 TEST3 reasons of learning a language
- 【nyoj119】士兵杀敌三(线段树)
- jmeter的初步试用
- 树-堆结构练习——合并果子之哈夫曼树
- MySQL(1)--修改字符编码