fork(1) download
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. void add(char *a, char *b)
  5. {
  6. int i,d,c=0;
  7. int l1=strlen(a);
  8. int l2=strlen(b);
  9.  
  10. for(i=l1;i<l2;i++)
  11. a[i]='0';
  12. for(i=l2;i<l1;i++)
  13. b[i]='0';
  14.  
  15. for(i=0;i<l1||i<l2;i++)
  16. {
  17. d=(a[i]-'0')+(b[i]-'0')+c;
  18. c=d/10;
  19. d=d%10;
  20. a[i]='0'+d;
  21. }
  22. while(c)
  23. {
  24. a[i]='0'+(c%10);
  25. c/=10;
  26. i++;
  27. }
  28. a[i]='\0';
  29. b[l2]='\0';
  30.  
  31. return ;
  32. }
  33.  
  34. void subs(char *a, char*b)
  35. {
  36. int i,d,c=0;
  37. int l1=strlen(a);
  38. int l2=strlen(b);
  39.  
  40. for(i=l2;i<l1;i++)
  41. b[i]='0';
  42.  
  43. for(i=0;i<l1;i++)
  44. {
  45. d=(a[i]-'0')-(b[i]-'0')-c;
  46. if(d<0)
  47. {
  48. d+=10;
  49. c=1;
  50. }
  51. else
  52. c=0;
  53. a[i]='0'+d;
  54. }
  55. b[l2]='\0';
  56.  
  57. i=l1-1;
  58. while(i>0 && a[i]=='0')
  59. i--;
  60. a[i+1]='\0';
  61.  
  62. return ;
  63. }
  64.  
  65. void divide(char *a, int q)
  66. {
  67. int i;
  68. int l=strlen(a);
  69. int c=0,d;
  70.  
  71. for(i=l-1;i>=0;i--)
  72. {
  73. d=c*10+(a[i]-'0');
  74. c=d%q;
  75. a[i]='0'+(d/q);
  76. }
  77. i=l-1;
  78. while(i>0 && a[i]=='0')
  79. i--;
  80.  
  81. a[i+1]='\0';
  82.  
  83. return ;
  84. }
  85.  
  86. void rev(char *a)
  87. {
  88. int l=strlen(a);
  89. int i=0,j=l-1;
  90. char c;
  91.  
  92. while(i<j)
  93. {
  94. c=a[i];
  95. a[i]=a[j];
  96. a[j]=c;
  97. i++;
  98. j--;
  99. }
  100.  
  101. return ;
  102. }
  103.  
  104. int main()
  105. {
  106. int t=10;
  107. while(t--)
  108. {
  109. char a[102], b[102];
  110.  
  111. scanf("%s",a);
  112. scanf("%s",b);
  113.  
  114. rev(a);
  115. rev(b);
  116.  
  117. add(a,b);
  118. divide(a,2);
  119.  
  120. rev(a);
  121. printf("%s\n",a);
  122.  
  123. rev(a);
  124. subs(a,b);
  125.  
  126. rev(a);
  127. printf("%s\n",a);
  128. }
  129. return 0;
  130. }
Success #stdin #stdout 0s 2056KB
stdin
Standard input is empty
stdout
./*30/',/-*+-'(+0.
784298058634601�]
39214902931730,('3
392149029317296W�
196074514658650632
196074514658649�a
98037257329320-.0
98037257329320\�
4901862866466292,
49018628664661�[
2450931433233,/(2
24509314332326^�
122546571661660/-
12254657166165�\
612732858308.*,.
6127328583078Y�
30636642915418,+
3063664291540�Z
153183214577,)*1
1531832145766X�