A+B Problem IV
来源:互联网 发布:信浓藤四郎极化数据 编辑:程序博客网 时间:2024/05/08 21:04
大数问题:
描述
acmj最近发现在使用计算器计算高精度的大数加法时很不方便,于是他想着能不能写个程序把这个问题给解决了。
输入
包含多组测试数据
每组数据包含两个正数A,B(可能为小数且位数不大于400)
输出
每组输出数据占一行,输出A+B的结果,结果需要是最简的形式。
样例输入
1.9 0.1
0.1 0.9
1.23 2.1
3 4.0
样例输出
2
1
3.33
7
来源
hdu
上传者
路过这
代码:
#include <iostream>#include <iomanip>#include <cstring>#include <algorithm>#include <string>using namespace std;char ch[405],ch1[405];int A1[805],A2[805],B1[805],B2[805],p,q;void get() {memset(A1,0,sizeof(A1));memset(A2,0,sizeof(A2));memset(B1,0,sizeof(B1));memset(B2,0,sizeof(B2));int i,j,k;k=strlen(ch);for(i=0;i<p;i++)A1[i]=ch[p-i-1]-'0';if(p<k){for(i=p+1;i<k;i++)A2[i-p-1]=ch[i]-'0';}k=strlen(ch1);for(i=0;i<q;i++)B1[i]=ch1[q-i-1]-'0';if(q<k){for(i=q+1;i<k;i++)B2[i-q-1]=ch1[i]-'0';}}void sum(){int i,j,k;get();k=0;for(i=400;i>=0;i--){A2[i]+=B2[i]+k;k=A2[i]/10;A2[i]=A2[i]%10;}j=400;for(i=0;i<j;i++){A1[i]+=B1[i]+k;k=A1[i]/10; if(A1[j-1]>9)j++; A1[i]=A1[i]%10;}for(i=j;i>=0;i--)if(A1[i]!=0) break;if(i<0) cout<<"0";for(j=i;j>=0;j--)cout<<A1[j]; for(i=400;i>=0;i--)if(A2[i]!=0) break;if(i>=0){cout<<".";for(j=0;j<=i;j++)cout<<A2[j]; } cout<<endl;}int main(){int n,m,i,j,k;while(cin>>ch>>ch1){p=strlen(ch);for(i=0;i<p;i++)if(ch[i]=='.') p=i;q=strlen(ch1);for(i=0;i<q;i++)if(ch1[i]=='.') q=i;sum();}return 0;}
0 0
- A+B Problem IV
- A+B Problem IV
- A+B Problem IV
- A+B Problem IV
- A+B Problem IV
- A+B Problem IV
- A+B Problem IV
- NYOJ513-A+B Problem IV
- 【A+B Problem IV 513 】
- acm-A+B Problem IV
- NYOJ513 A+B Problem IV
- NYOJ513,A+B Problem IV
- nyoj513 A+B Problem IV
- NYOJ 513 A+B Problem IV
- NYOJ NO.513 A+B Problem IV
- nyoj 513 A+B Problem IV
- NYOJ 513 A+B Problem IV
- NYOJ 513 A+B Problem IV
- MUI常用方法
- 通配符的使用方法
- Swift 取子字符串
- 美团O2O排序解决方案——线上篇
- Unity 3d 如何实现点击屏幕,npc自动移动到点击位置
- A+B Problem IV
- VS2013试用期结束后如何激活
- 美团O2O排序解决方案——线下篇
- Python字符串的encode与decode研究心得——解决乱码问题
- mysql 1366 Incorrect integer value错误
- 打印时间与成绩
- 166. Fraction to Recurring Decimal
- Linux Segmentation Fault 段错误 产生原因调试方法
- 美团酒店Node全栈开发实践