#include <iostream> using namespace std; //实现string+1 void Add_1(string &s) { bool add=false; for(int i=s.size()-1; i>=0; i--) { if(s[i]<'9') { add=true; s[i]=s[i]+1; for(int j=i+1; j<s.size(); j++) s[j]='0'; break; } } if(!add) { for(int i=0; i<s.size(); i++) s[i]='0'; s='1'+s; } } int main() { string s1,s2; while(cin>>s1>>s2) { string z1,z2; string x1,x2; bool guo=false; for(int i=0; i<s1.size(); i++) { if(s1[i]=='.') guo=true; if(!guo) //整数部分 z1=z1+s1[i]; else//小数部分 x1=x1+s1[i]; } x1.erase(0,1); guo=false; for(int i=0; i<s2.size(); i++) { if(s2[i]=='.') guo=true; if(!guo) //整数部分 z2=z2+s2[i]; else//小数部分 x2=x2+s2[i]; } x2.erase(0,1); //整数部分 //对齐 int m=z2.size()-z1.size(); if(m>0) { for(int i=1; i<=m; i++) { z1='0'+z1; } } m=z1.size()-z2.size(); if(m>0) { for(int i=1; i<=m; i++) { z2='0'+z2; } } //进行计算 string z=""; bool jin=false; for(int i=z1.size()-1; i>=0; i--) { char t; if(jin) t=(z1[i]+z2[i]-'0'-'0'+1)%10+'0'; else t=(z1[i]+z2[i]-'0'-'0')%10+'0'; z=t+z; if(jin) jin=(z1[i]+z2[i]-'0'-'0'+1)>=10?true:false; else jin=(z1[i]+z2[i]-'0'-'0')>=10?true:false; } if(jin) z='1'+z; //小数部分 //对齐 if(x1.size()<x2.size()) { for(int i=x1.size(); i<x2.size(); i++) x1=x1+'0'; } else { for(int i=x2.size(); i<x1.size(); i++) x2=x2+'0'; } //进行计算 string x=""; jin=false; for(int i=x1.size()-1; i>=0; i--) { char t; if(jin) t=(x1[i]+x2[i]-'0'-'0'+1)%10+'0'; else t=(x1[i]+x2[i]-'0'-'0')%10+'0'; x=t+x; if(jin) jin=(x1[i]+x2[i]-'0'-'0'+1)>=10?true:false; else jin=(x1[i]+x2[i]-'0'-'0')>=10?true:false; } if(jin) Add_1(z); cout<<z<<"."<<x<<endl; } return 0; }