标签:std strong 小数点 class bit 大明a+b clu show har
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1753
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 14422 Accepted Submission(s): 5290
#include<bits/stdc++.h> using namespace std; string add(string str1,string str2) { int l1=str1.length(),l2=str2.length(); int x1=0,x2=0,y1=0,y2=0; for(int i=l1-1;i>=0;i--) { if(str1[i]!=‘.‘) { y1++; if(y1==l1) { str1=str1+‘.‘+‘0‘; y1=1; } } else break; } for(int i=l2-1;i>=0;i--) { if(str2[i]!=‘.‘) { y2++; if(y2==l2) { str2=str2+‘.‘+‘0‘; y2=1; } } else break; } if(y1>y2) { int k=y1-y2; for(int i=1;i<=k;i++) { str2=str2+‘0‘; } }else if(y1<y2) { int k=y2-y1; for(int i=1;i<=k;i++) { str1=str1+‘0‘; } } for(int i=0;i<l1;i++) { if(str1[i]!=‘.‘) x1++; else break; } for(int i=0;i<l2;i++) { if(str2[i]!=‘.‘) x2++; else break; } if(x2>x1) { int k=x2-x1; for(int i=1;i<=k;i++) { str1="0"+str1; } }else if(x1>x2) { int k=x1-x2; for(int i=1;i<=k;i++) { str2="0"+str2; } } l1=str1.length(); string str3=""; int c=0; for(int i=l1-1;i>=0;i--) { if(str1[i]==‘.‘) { str3=‘.‘+str3; continue; } int x=str1[i]-‘0‘+str2[i]-‘0‘+c; c=x/10; x=x%10; str3=char(x+‘0‘)+str3; } if(c!=0) { str3=char(c+‘0‘)+str3; } int l3=str3.length(),f=1; for(int i=l3-1;str3[i]!=‘.‘;i--) { if(str3[i]!=‘0‘) f=0; } if(f==1) { string str4=""; for(int i=0;str3[i]!=‘.‘;i++) { str4=str4+str3[i]; } return str4; } string str5=""; int ff; l3=str3.length(); for(int i=l3-1;i>=0;i--) { if(str3[i]!=‘0‘) { ff=i; break; } } for(int i=ff;i>=0;i--) { str5=str3[i]+str5; } return str5; } int main() { string a,b; while(cin>>a>>b) { string r=add(a,b); cout<<r<<endl; } return 0; }
标签:std strong 小数点 class bit 大明a+b clu show har
原文地址:https://www.cnblogs.com/yinbiao/p/8759046.html