#include<bits/stdc++.h> using namespace std; int main(){ string a,b; int p1,p2,f1,f2; while(cin>>a>>b){ string a1,a2,b1,b2; p1=a.find('.'); p2=b.find('.'); a1=a.substr(0,p1); b1=b.substr(0,p2); if(p1==-1) a2="0"; else a2=a.substr(p1+1,a.size()); if(p2==-1) b2="0"; else b2=b.substr(p2+1,b.size()); if(a1.size()<b1.size()) swap(a1,b1); if(a2.size()<b2.size()) swap(a2,b2); int lx=a1.size()-b1.size(); int xl=a2.size()-b2.size(); while(lx--)b1='0'+b1; while(xl--)b2=b2+'0'; int l1=a1.size(),flag1=0; int l2=a2.size(),flag2=0,flag3=0; while(l2--){ a2[l2]=a2[l2]+b2[l2]-'0'+flag2; if(a2[l2]-'0'>9){ a2[l2]-=10;flag2=1; } else flag2=0; } while(l1--){ a1[l1]=a1[l1]+b1[l1]-'0'+flag1; if(a1[l1]-'0'>9){ a1[l1]-=10;flag1=1; } else flag1=0; } if(flag2){ b1="1"; lx=a1.size()-1; while(lx--)b1='0'+b1; int l3=a1.size(); while(l3--){ a1[l3]=a1[l3]+b1[l3]-'0'+flag3; if(a1[l3]-'0'>9){ a1[l3]-=10;flag3=1; } else flag3=0; } } if(flag1==1||flag3==1) cout<<'1'; cout<<a1; int fd=0; for(int j=a2.size()-1;j>=0;j--) if(a2[j]=='0')a2.erase(j,1); else break; for(int i=0;i<a2.size();++i)fd+=(a2[i]-'0'); if(fd!=0) cout<<'.'<<a2<<endl; else cout<<endl; } } |
Double click to view unformatted code.