Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- int t;
- scanf(" %d",&t);
- while(t--)
- {
- char* num1 = (char*)malloc(18);
- char* num2 = (char*)malloc(18);
- scanf(" %s %s",num1,num2);
- int len1,len2,i;
- for(len1=0;num1[len1];len1++);
- for(len2=0;num2[len2];len2++);
- for(i=0;i<len1/2;i++)
- {
- char temp = num1[i];
- num1[i] = num1[len1-i-1];
- num1[len1-i-1] = temp;
- }
- for(i=0;i<len2/2;i++)
- {
- char temp = num2[i];
- num2[i] = num2[len2-i-1];
- num2[len2-i-1] = temp;
- }
- int right1=len1-1,right2=len2-1;
- char* ans = (char*)malloc(19);
- int k = 0,carry=0;
- while(right1>=0 && right2>=0)
- {
- ans[k++] = (num1[right1]-'0'+num2[right2]-'0'+carry)%10+'0';
- carry = (num1[right1]-'0'+num2[right2]-'0'+carry)/10;
- right1--;right2--;
- }
- while(right1>=0)
- {
- ans[k++] = (num1[right1]-'0'+carry)%10 + '0';
- carry = (num1[right1]-'0'+carry)/10;
- right1--;
- }
- while(right2>=0)
- {
- ans[k++] = (num2[right2]-'0'+carry)%10 + '0';
- carry = (num2[right2]-'0'+carry)/10;
- right2--;
- }
- if(carry)
- ans[k++] = carry + '0';
- ans[k]=0;
- unsigned long long n1;
- //sscanf(num1,"%ull",&n1);
- sscanf(ans,"%llu",&n1);
- printf("%llu\n",n1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement