Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int main()
  5. {
  6. int t;
  7. scanf(" %d",&t);
  8. while(t--)
  9. {
  10. char* num1 = (char*)malloc(18);
  11. char* num2 = (char*)malloc(18);
  12. scanf(" %s %s",num1,num2);
  13. int len1,len2,i;
  14. for(len1=0;num1[len1];len1++);
  15. for(len2=0;num2[len2];len2++);
  16.  
  17. for(i=0;i<len1/2;i++)
  18. {
  19. char temp = num1[i];
  20. num1[i] = num1[len1-i-1];
  21. num1[len1-i-1] = temp;
  22. }
  23. for(i=0;i<len2/2;i++)
  24. {
  25. char temp = num2[i];
  26. num2[i] = num2[len2-i-1];
  27. num2[len2-i-1] = temp;
  28. }
  29. int right1=len1-1,right2=len2-1;
  30. char* ans = (char*)malloc(19);
  31. int k = 0,carry=0;
  32. while(right1>=0 && right2>=0)
  33. {
  34. ans[k++] = (num1[right1]-'0'+num2[right2]-'0'+carry)%10+'0';
  35. carry = (num1[right1]-'0'+num2[right2]-'0'+carry)/10;
  36. right1--;right2--;
  37. }
  38. while(right1>=0)
  39. {
  40. ans[k++] = (num1[right1]-'0'+carry)%10 + '0';
  41. carry = (num1[right1]-'0'+carry)/10;
  42. right1--;
  43. }
  44. while(right2>=0)
  45. {
  46. ans[k++] = (num2[right2]-'0'+carry)%10 + '0';
  47. carry = (num2[right2]-'0'+carry)/10;
  48. right2--;
  49. }
  50. if(carry)
  51. ans[k++] = carry + '0';
  52. ans[k]=0;
  53. unsigned long long n1;
  54. //sscanf(num1,"%ull",&n1);
  55. sscanf(ans,"%llu",&n1);
  56. printf("%llu\n",n1);
  57.  
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement