#include<stdio.h> #include<string.h> int main(){ char a[400],b[400],c[401]; int k1=0,k2=0,i,j; while(scanf("%s %s",a,b)!=EOF){ memset(c,'\0',sizeof(c)); int flag=0,l=0; int len1=strlen(a); int len2=strlen(b); for(i=0;i<len1;i++){ if(a[i]=='.'){ k1=i; break; } } for(i=0;i<len2;i++) { if(b[i]=='.'){ k2=i; break; } } if(k1!=0&&k2!=0){ int t1=len1-k1-1; int t2=len2-k2-1; if(t1>t2){ while(t1>t2){ c[l++]=a[len1-1]; t1--; len1--; } } else if(t1<t2){ while(t1<t2){ c[l++]=a[len2-1]; t2--; len2--; } } for(i=len1-1;i>=0;i--){ if(a[i]!='.'){ int k=(a[i]-'0')+(b[i]-'0'); if(flag==1){ k++; flag=0; } if(k>9){ flag=1; c[l++]=k-10+'0'; } else c[l++]=k+'0'; } else{ c[l++]='.'; } } if(flag==1){ c[l++]='1'; } } else if(k1==0){ for(i=len2-1;i>=0;i--){ c[l++]=b[i]; if(b[i]=='.') break; } for(i=len1-1;i>=0;i--){ int k=(a[i]-'0')+(b[i]-'0'); if(flag==1){ k++; flag=0; } if(k>9){ flag=1; c[l++]=k-10+'0'; } else c[l++]=k+'0'; } if(flag==1){ c[l++]='1'; } } else if(k2==0){ for(i=len1-1;i>=0;i--){ c[l++]=a[i]; if(a[i]=='.') break; } for(i=len2-1;i>=0;i--){ int k=(a[i]-'0')+(b[i]-'0'); if(flag==1){ k++; flag=0; } if(k>9){ flag=1; c[l++]=k-10+'0'; } else c[l++]=k+'0'; } if(flag==1){ c[l++]='1'; } } for(i=l-1;i>=0;i--){ if(c[i]=='0'){ for(j=i;j>=0;j--){ if(c[j]!='0') break; } if(j>=0){ printf("%c",c[i]); break; } } else{ printf("%c",c[i]); } } printf("\n"); } } |
Double click to view unformatted code.