fork(2) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int n; cin >> n;
  8.  
  9. for (int i = 0; i < n; i++)
  10. {
  11. char * tab1 = new char [10000];
  12. char * tab2 = new char [10000];
  13. char * suma = new char [2000000];
  14.  
  15. cin >> tab1 >> tab2;
  16.  
  17. int pTab1 = 0, pTab2 = 0, bufor = 0, aktualnaSuma, liczba1, liczba2;
  18. while (tab1[pTab1])
  19. pTab1++;
  20. while (tab2[pTab2])
  21. pTab2++;
  22.  
  23. int j = 1000000;
  24. bool powtorz = true;
  25. while (powtorz)
  26. {
  27.  
  28. if (static_cast <int> ((tab1[pTab1-1])-48) >= 0)
  29. liczba1 = static_cast <int> ((tab1[pTab1-1])-48);
  30. else
  31. liczba1 = 0;
  32.  
  33. if (static_cast <int> ((tab2[pTab2-1])-48) >= 0 )
  34. liczba2 = static_cast <int> ((tab2[pTab2-1])-48);
  35. else
  36. liczba2 = 0;
  37.  
  38. aktualnaSuma = liczba1 + liczba2;
  39.  
  40. if (aktualnaSuma <= 9)
  41. {
  42. suma[j] = static_cast <char> (aktualnaSuma+48+bufor);
  43. bufor = 0;
  44. }
  45. else
  46. {
  47. suma[j] = static_cast <char> (aktualnaSuma-10+48+bufor);
  48. bufor = 1;
  49. }
  50.  
  51. j--;
  52. pTab1--;
  53. pTab2--;
  54.  
  55.  
  56.  
  57. if (pTab1 <= 0 && pTab2 <= 0)
  58. powtorz = false;
  59.  
  60. }
  61.  
  62. for (int i = 0; i <= 1000000; i++)
  63. if (suma[i] != '\0')
  64. cout << suma[i];
  65. cout << endl;
  66. delete [] tab1;
  67. delete [] tab2;
  68. delete [] suma;
  69.  
  70. }
  71. return 0;
  72. }
  73.  
Success #stdin #stdout 0s 3472KB
stdin
3
363636363636 6363636364
1212121212 8787878787878788
1234567 11118765433
stdout
3699999999:0
87878799999999:0
111199999:0