hdu 1753 大数相加(高精度)
来源:互联网 发布:java final变量 编辑:程序博客网 时间:2024/05/15 07:15
Description
这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。
现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。
Input
每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。
Output
Sample Input
1.1 2.91.1111111111 2.34443233431 1.1
Sample Output
43.45554344542.1
思路:这个题我是将两个数的小数部分和整数部分分开相加然后在输出的,但是此题有几个需要注意地方:1.小数点后多余的0不能输出,2.第一位小数的进位是要加在整数部分上的(这个比较容易被忽略)我对小数进位的处理方法是:小数部分的第一位从数组的1开始存,然后进位存在下标为0的数组里,不管有没有进位直接将a[0]直接加到 整数部分的第一位这样比较方便处理ac 代码:#include<stdio.h>#include<string.h>int a[510],b[510],c[510],d[510];char s1[510],s2[510];int main(){ int i,j,n1,n2,t1,t2,num1,num2,k; while(scanf("%s%s",s1,s2)!=EOF) { t1=n1=strlen(s1); t2=n2=strlen(s2); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); for(i=0;i<n1;i++) { if(s1[i]=='.') { t1=i; break; } } k=0; for(i=t1-1;i>=0;i--) a[k++]=s1[i]-'0'; for(i=0;i<n2;i++) { if(s2[i]=='.') {t2=i; break;} } k=0; for(i=t2-1;i>=0;i--) b[k++]=s2[i]-'0'; k=1; if(t1+1<n1) for(i=t1+1;i<n1;i++) c[k++]=s1[i]-'0'; k=1; if(t2+1<n2) for(i=t2+1;i<n2;i++) d[k++]=s2[i]-'0'; num1=(n1-t1)>(n2-t2)?(n1-t1):(n2-t2); for(i=num1;i>=1;i--) { c[i]+=d[i]; if(c[i]>=10) { c[i-1]++; c[i]-=10;} } a[0]+=c[0]; num2=(t1-1)>(t2-1)?(t1-1):(t2-1); for(i=0;i<=num2;i++) { a[i]+=b[i]; if(a[i]>=10) { a[i+1]++; a[i]-=10;} } if(a[num2+1]>0) printf("%d",a[num2+1]); for(i=num2;i>=0;i--) printf("%d",a[i]); for(i=num1;i>=1;i--) { if(c[i]==0) continue; else break; } if(i==0); else { printf("."); for(j=1;j<=i;j++) printf("%d",c[j]); } printf("\n"); } return 0;} hdu 1753
- hdu 1753 大数相加(高精度)
- 大数相加(高精度)
- 大数(相加,高精度)模板
- 高精度大数相加
- hdu 1753 高精度小数相加
- HDU 1047(大数相加)
- 大数相加(hdu 1002)
- 高精度问题之大数相加
- 高精度模版(大数相加 相乘 相除)
- HDU 1753大明A+B(大数相加)(string::npos)
- HDU-1753 大明A+B【大数相加】
- HDU-1753 大明A+B【大数相加】
- HDU 1753 小数的大数相加
- HDU-1753 大明A+B【大数相加】
- hdu 1715 大菲波数(大数相加)
- HDU 1047(大数相加)(数组模拟)
- hdu 1002 大数相加
- HDU 1002(大数相加)
- thinkphp利用正则表达式实现艾特@
- 开发环境配置博客
- Android源码分析—带你认识不一样的AsyncTask
- Linux内核中常见内存分配函数
- 二十三、oracle pl/sql分类三 包
- hdu 1753 大数相加(高精度)
- UML用例图
- Cocos2d-x之显示精灵Sprite
- angular中 自身 子元素 以及 父元素之间数据的通信
- C++学习笔记1(Windows程序运行原理及程序编写流程)
- 二十四、oracle pl/sql 变量
- C++ Primer 笔记之 第三章
- 二十五、oracle pl/sql进阶--控制结构(分支,循环,控制)
- List of word processors